<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    分享java帶來的快樂

    我喜歡java新東西

    flash中ExternalInterface不會造成方法覆蓋

    在JavaScript與Flash的通信一文中我介紹了利用ExternalInterface來實現的JS與AS雙向通信,有朋友跟我提出疑問如果AS或者JS中都定義了同名函數,那么會造成方法覆蓋嗎?這的確是個需要考慮的問題,通過測試證明,即使出現了同名方法的定義,它們也是相互獨立的,不會造成方法覆蓋。

      一、AS調用JS方法時出現同名方法(查看實例)

     
        AS代碼如下:
       
        import flash.external.*;
        var v =ExternalInterface.available;
        t_btn.onRelease = function (){
            //調用JS函數
            var s = ExternalInterface.call("say","JS函數調用成功!")
            //調用AS本地函數
            s +=say("\n本地函數調用成功!");
            r_txt.text = s;
        }
        //AS本地函數
        function say(s){
            return s;
        }
      
        HTML代碼:
       //定義一個JS函數
       function say(txt){
            return txt;
        }

     可以看到在JS中定義了一個say方法供AS調用,現在我們在AS中定義了一個同名的say方法來驗證它們是否會出現覆蓋。結果證明它們不會覆蓋,都工作得很好。(PS:不錯~)


    二、JS調用AS方法時出現同名方法(查看實例)


      AS代碼如下://導入包
            import flash.external.*;
            //提供JS訪問的函數名
            var _method:String = "say";
            //指定本地函數中this變量的作用域,可設置為null留空
            var e_area:Object =null;
            //AS內部函數名
            var method:Function = say;
            //將函數注冊到容器列表
            var wasSuccessful:Boolean = ExternalInterface.addCallback(_method, e_area, method);
            //查看注冊是否成功
            if(wasSuccessful){
                result_txt.text = "函數注冊成功";
            }
            //本地的函數
            function say(txt:String) {
                result_txt.text = txt;
            }

        HTML代碼如下:
     <div>
      <form>
       <input type="button" onclick="callExternalInterface()" value="JS調用AS方法" />
      </form>
      <script>
       function callExternalInterface() {
        thisMovie("demo").say("Hello,World");
       }
       //瀏覽器兼容訪問DOM
       function thisMovie(movieName) {
        if (navigator.appName.indexOf("Microsoft") != -1)
        {
         return window[movieName]
        }else{
         return document[movieName]
        }
       }
       //定義一個JS本地函數
       function say(s){
        alert(s);
       }
      </script>
     </div>


      可以看到在AS中定義了一個say方法供JS調用,現在我們在JS中定義了一個同名的say方法來驗證它們是否會出現覆蓋。結果證明它們不會覆蓋,都工作得很好。(PS:也不錯~)


      通過上面的兩個例子我們可以得出結論在使用ExternalInterface時即使定義了同名方法,也不會造成方法覆蓋,你大可放心使用

    posted on 2012-04-19 22:52 強強 閱讀(425) 評論(0)  編輯  收藏 所屬分類: web技巧Flash

    主站蜘蛛池模板: 成人A级毛片免费观看AV网站| 免费无遮挡无码永久视频 | 亚洲精华国产精华精华液好用| 黄色免费网站网址| 亚洲精品国产电影午夜| 免费女人高潮流视频在线观看| 亚洲福利在线观看| 中国xxxxx高清免费看视频| 亚洲福利视频网址| 成人免费a级毛片| 亚洲AV永久无码天堂影院| 国产视频精品免费| 老司机午夜在线视频免费观| 免费看一级做a爰片久久| 一二三区免费视频| 国产成人亚洲综合色影视| 免费A级毛片无码A∨中文字幕下载 | 久久精品国产亚洲| 最近中文字幕国语免费完整| 亚洲成人福利在线观看| 最近免费中文字幕大全视频| 麻豆亚洲AV成人无码久久精品| 亚洲AV网站在线观看| 久久er国产精品免费观看8| 久久亚洲精品AB无码播放| 91香蕉成人免费网站| 亚洲AV无码一区二区三区性色| 亚洲情a成黄在线观看| 无码精品国产一区二区三区免费 | 青青视频免费在线| 亚洲区小说区图片区| 青青草原1769久久免费播放| 亚洲免费网站在线观看| 成人伊人亚洲人综合网站222| 伊人免费在线观看| 亚洲已满18点击进入在线观看| 亚洲精品网站在线观看不卡无广告| 四虎国产成人永久精品免费| 亚洲制服在线观看| 中国亚洲女人69内射少妇| 亚洲日韩精品一区二区三区无码 |