Flex中函数传值调用Demo

======================说明=======================

1)在Flex中有这么一个类:ExternalInterface.在这个类中它给我们:call和addCallback


Flex中As调用Js的方法是:
     1、导入包 (import flash.external.ExternalInterface;)
     2、在/html-template/index.template.html的<head></head>中引入js,如:<script src="onLine.js" language="javascript"></script>
     3、使用ExternalInterface.call("Js函数名称",参数)进行调用,其返回的值就是Js函数所返回的值

Flex调用javascript中的函数:
mxml:
<mx:Script>
 <![CDATA[
  import mx.controls.Alert;
  internal function callJsFunction():void {
    ExternalInterface.call("popUp", true);   
  }
 ]]>
</mx:Script>
<mx:Button x="480" y="84" label="flex call javascript" click="callJsFunction()"/>

 
Js调用As的方法是:
     1、导入包 (import flash.external.ExternalInterface;)
     2、在initApp中使用ExternalInterface.addCallback("用于Js调用的函数名",As中的函数名)进行注册下
     3、js中 就可以用document.getElementById("Flas在Html中的ID").注册时设置的函数名(参数)进行调用.


实例演习:

<mx:Script>
    import flash.external.*;
    public function myFunc():Number {
        return 42;
    }
    public function initApp():void {
        ExternalInterface.addCallback("myFlexFunction",myFunc);
    }
</mx:Script>
那么在Html页面中,先获得SWF对象的引用,也就是用<object .../>声明的Swf的Id属性,比如说是MyFlexApp。然后就可以用以下方式调用Flex中的方法。
<SCRIPT language='JavaScript' charset='utf-8'>
    function callApp() {
        var x = MyFlexApp.myFlexFunction();
        alert(x);
    }
</SCRIPT>
<button onclick="callApp()">Call App</button>

 =======================附件中的DMEO(mxml和jsp两个文件+swf)=======================

相关推荐