zoukankan      html  css  js  c++  java
  • flex与js交互浅析

    1.flex调用js方法

    调用方法例如:ExternalInterface.call("UploadComplete",oldName,uidName,_dir+"/"+uidName+type);

    第一个是js方法名,后面几个是给这个js方法传的参数。这个方法必须在网页的js中注册,否则会调用失败。

    需要注意的是调用之前需要检查网页的js是否已完成加载,用ExternalInterface.available可是判断。

    注:这种调用方法是可以有返回值的,例如:var m:String = ExternalInterface.call(f,"New Title");

          但是这个返回值不能有时延(例如js需要进行ajax操作),否则m=null。因为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>
    复制代码

    2.js调用flex方法 

    js要调用flex方法,首先在flex中必须注册,将as方法注册为js可调用的方法。例如:ExternalInterface.addCallback("ConfirmGroup",ConfirmGroup);

    第一个是js中调用时用的名称,第二个是as中定义的方法。

    在ie浏览器中调用方法为: document.getElementById("mapContent").ConfirmGroup(1); 

    mapContent为flash的id。

     注:它也是可以有返回值的。

    示例:

    AS:

    复制代码
    <mx:Script>
        import flash.external.*;
        public function myFunc():Number {
            return 42;
        }
        public function initApp():void {
            ExternalInterface.addCallback("myFlexFunction",myFunc);
        }
    </mx:Script> 
    复制代码

    JS:

    复制代码
    <SCRIPT language='JavaScript' charset='utf-8'>
        function callApp() {
            var x = MyFlexApp.myFlexFunction();
            alert(x);
        }
    </SCRIPT>
    <button onclick="callApp()">Call App</button>
  • 相关阅读:
    Path Sum
    Linked List Cycle II
    Linked List Cycle
    Single Number i and ii
    Binary Tree Preorder Traversal and Binary Tree Postorder Traversal
    Max Points on a Line
    Evaluate Reverse Polish Notation
    【leetcode】98 验证二叉搜索树
    【vivo2020春招】 02 数位之积
    【vivo2020春招】03 vivo智能手机产能
  • 原文地址:https://www.cnblogs.com/yuwenjing0727/p/6674196.html
Copyright © 2011-2022 走看看