ExternalInterface的简单使用方法

使用ExternalInterface调用JavaScript方法-无返回值

flex代码

------------------

<mx:Button id="btn" label="Button" click="hello()"/>

<mx:Script>

 <![CDATA[

  private function hello():void{

         ExternalInterface.call("sayHello");

        }

 ]]>

</mx:Script>

JavaScript代码

---------------------

function sayHello(){

 alert("Hello from JavaScript!");

}

===================================

使用ExternalInterface调用JavaScript方法-传參数有返回值

flex 代码

------------------

<mx:Button id="btn" label="Button" click="hello()"/>

<mx:Script>

 <![CDATA[

  private function hello():void{

         var msg:String=ExternalInterface.call("sayHello","Hello","from JavaScript!");

  Alert.show(msg);

        }

 ]]>

</mx:Script>

JavaScript代码

---------------------

function sayHello(msg,str){

 return msg+"-"+str;

}

===============================================

JavaScript调用flex 方法

flex 代码

------------------

<mx:Button id="btn" label="Button" click="hello()"/>

<mx:Script>

 <![CDATA[

  private function hello():void{

         ExternalInterface.addCallback("getHello",getHello);

        }

 ]]>

</mx:Script>

JavaScript代码

---------------------

function sayHello(){

 var msg=CheckLayout.getHello();

 alert(msg);

}

<body scroll="no">

<input type="button"value="点击我" width="100" onclick="sayHello()"/>

<noscript>

   <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"

   id="CheckLayout" width="100%" height="100%"

   codebase="​​http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab​​">

   <param name="movie" value="CheckLayout.swf" />

   <param name="quality" value="high" />

   <param name="bgcolor" value="#869ca7" />

   <param name="allowScriptAccess" value="sameDomain" />

   <embed src="CheckLayout.swf" quality="high" bgcolor="#869ca7"

    width="100%" height="100%" name="CheckLayout" align="middle"

    play="true"

    loop="false"

    quality="high"

    allowScriptAccess="sameDomain"

    type="application/x-shockwave-flash"

    pluginspage="​​http://www.adobe.com/go/getflashplayer​​">

   </embed>

 </object>

</noscript>

</body>