JavaScript与ActionScript函数相互调用

常见铭越萱

常见铭越萱

2016-02-19 19:38

下面是个超简单的JavaScript与ActionScript函数相互调用教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

1、在JavaScript中调用Flex(ActionScript)方法

在Flex中可以用ExternalInterface来调用Flex的方法。

在Flex应用中通过调用addCallback()可以把一个方法添加到列表中。addCallback将一个ActionScript的方法注册为一个JavaScript和VBScript可以调用的方法。

ddCallback()函数的定义如下:

addCallback(function_name:String, closure:Function):void

function_name参数就是在Html页面中脚本调用的方法名。closure参数是要调用的本地ActionScript方法,这个参数可以是一个方法也可以是对象实例。

例子:

mx:Script
    import flash.external.*;
    public function asFunc():String {
        return "Hello Flex";
    }
    public function initApp():void {
        ExternalInterface.addCallback("flexFunctionAlias",asFunc);
    }
/mx:Script

那么在Html页面中,先获得SWF对象的引用,也就是用object .../声明的Swf的Id属性,比如说是MyFlexApp。然后就可以用以下方式调用Flex中的方法。

SCRIPT language='JavaScript' charset='utf-8'
    function callApp() {
        var x = MyFlexApp.flexFunctionAlias();
        alert(x);
    }
/SCRIPT
button Call App/button

2、在Flex(ActionScript)中调用 JavaScript(后面有实例)

在Flex中调用JS代码就方便得多。你可以调用 Html页面中的JavaScript,通过与JavaScript的交互,可以改变Style,调用远程方法。还可以将数据传递给Html页面,处理后 再返回给Flex,完成这样的功能主要有两种方法:ExternalInterface()和navigateToUrl()。

在Flex中调用JavaScript最简单的方法是使用ExternalInterface(),可以使用此API调用任意JavaScript,传递参数,获得返回值,如果调用失败,Flex抛出一个异常。

ExternalInterface封装了对浏览器支持的检查,可以用available属性来查看。

ExternalInterface的使用非常简单,语法如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

flash.external.ExternalInterface.call(function_name: String[, arg1, ...]):Object;

参数function_name是要调用的JavaScript的函数名,后面的参数是JavaScript需要的参数。

举个例子说明如何调用JavaScript函数

Flex应用中,添加如下方法:
mx:Script
?xml version="1.0" encoding="iso-8859-1"?
mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    mx:Script
        import flash.external.*;
   
        public function callWrapper():void {
            var f:String = "changeDocumentTitle";
            var m:String = ExternalInterface.call(f,"New Title");
            trace(m);
        }
    /mx:Script
    mx:Button label="Change Document Title" click="callWrapper()"/
/mx:Application
Html页面中有如下函数定义:
SCRIPT LANGUAGE="JavaScript"
    function changeDocumentTitle(a) {
        window.document.title=a;
        return "successful";
    }
/SCRIPT

应用例子
1。在Flex程序中打开一个浏览器窗口

//---CallJSApp.mxml

?xml version="1.0" encoding="utf-8"?

mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" viewSourceURL="srcview/index.html"

      mx:Script

            ![CDATA[

                  import mx.validators.ValidationResult;

                  import cwmlab.util.*;                 

                  private function openBrowser():void

                  {

                        MyURLUtil.openWindow("http://www.google.com/");

                  }                                  

            ]]

      /mx:Script

      mx:HBox width="100%"

            mx:Button label="open" click="openBrowser()"/      

      /mx:HBox     

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

/mx:Application

//--MyURLUtil.as

package cwmlab.util

{   

      import flash.external.ExternalInterface;   

      public class MyURLUtil   

      {       

            protected static const WINDOW_OPEN_FUNCTION : String = "window.open";    

            public static function openWindow(url : String, window : String = "_blank",

                  features : String = "") : void{

                  ExternalInterface.call(WINDOW_OPEN_FUNCTION, url, window, features);       

          }

      }

}// ActionScript file

展开更多 50%)
分享

猜你喜欢

JavaScript与ActionScript函数相互调用

Web开发
JavaScript与ActionScript函数相互调用

如何调用ActiveX网页中的JavaScript函数

编程语言 网络编程
如何调用ActiveX网页中的JavaScript函数

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JavaScript函数调用的四个规则

Web开发
JavaScript函数调用的四个规则

JavaScript与函数式编程

Web开发
JavaScript与函数式编程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JavaScript扩展:正则像函数一样调用

Web开发
JavaScript扩展:正则像函数一样调用

JavaScript与函数式编程解释

Web开发
JavaScript与函数式编程解释

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JavaScript学习笔记 2-变量、字符串

JavaScript学习笔记 2-变量、字符串

跟我学MS SQL Server(8)

跟我学MS SQL Server(8)
下拉加载更多内容 ↓