[转载]Flex与javascript通信

[转载]Flex与javascript通信 – 英雄小强 – 博客园.

首先列出代码部分,我们可以先尝试的感受一下效果:

1.Flex代码部分:文件名为Flex_JavaScript.mxml

<!--?xml version="1.0" encoding="utf-8"?-->

<!&#91;CDATA&#91;             import mx.controls.Alert;             public function init():void             {                 ExternalInterface.addCallback("FlexMethod",FlexMethod);             }             private function FlexMethod():void             {                 Alert.show("这是Flex的Alert方法");             }             protected function FlexMethod_clickHandler(event:MouseEvent):void             {                 // TODO Auto-generated method stub                 FlexMethod();             }                          protected function FlexCallJS_clickHandler(event:MouseEvent):void             {                 // TODO Auto-generated method stub                 ExternalInterface.call("JSMethod","这是Javascript的Alert方法");             }                      &#93;&#93;>
<!-- Place non-visual elements (e.g., services, value objects) here -->

2.JavaScript代码部分:将以下代码添加到index.template.html里面(为什么要添加到index.template.html里面呢?因为index.template.html里面的代码会自动添加到Flex自动生成的HTML文件中)。

<script type="text/javascript">// <!&#91;CDATA&#91;
    function JSMethod(info) {
        alert(info);
    }
    function JSCallFlex() {
        document.getElementById("Flex_Javascript").FlexMethod();
    }
// &#93;&#93;></script>

<input onclick="JSCallFlex()" type="button" value="Javascript调用Flex" />
<input onclick="JSMethod('这是Javascript的Alert方法')" type="button" value="Javascript的Alert方法" />

3.修改Flash的大小,否则看不到HTML里面添加的按钮Button,我这里改为400X300

swfobject.embedSWF("${swf}.swf", "flashContent", "400", "300",
            swfVersionStr, xiSwfUrlStr, flashvars, params, attributes);

这里稍微解释一下,不多说,你懂的:

1.Flex里面使用ExternalInterface.call(“Js函数名称”,参数)进行调用JavaScript方法,其返回的值就是Js函数所返回的值。

2.在init方法中使用ExternalInterface.addCallback(“注册的方法名”,As中的函数名)进行注册,“注册的方法名”可以再javascript中直接调用

3.在js中,就可以用document.getElementById(“Flash在Html中的ID”).注册的方法名(参数)进行调用,当然,默认”Flash在Html中的ID”就是Flex文件的名称,例如,我们这里就是Flex_Javascript,因为我们的Flex文件就是Flex_Javascript.mxml

注:本文章部分内容可能引用于网络,本人进行修改或注释,希望能够帮到更多的人。 作者 姓名:英雄小强 邮箱:hero88821@qq.com QQ :659406804 MSN:hero821@msn.cn

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏