<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

    主站蜘蛛池模板: 99精品全国免费观看视频 | 国产综合成人亚洲区| 国产99视频精品免费观看7| 亚洲理论精品午夜电影| 91福利视频免费观看| 亚洲成AV人片久久| 操美女视频免费网站| 亚洲天然素人无码专区| 女人18毛片a级毛片免费视频| 亚洲日韩中文字幕一区| 国产美女无遮挡免费视频网站| 污污免费在线观看| 亚洲色成人中文字幕网站| 国产午夜不卡AV免费| 亚洲日本一区二区三区| 一个人免费高清在线观看| 豆国产96在线|亚洲| 久久国产成人亚洲精品影院 | 91精品国产免费| 亚洲五月综合网色九月色| 好爽好紧好大的免费视频国产| 夜夜爽妓女8888视频免费观看| 国精无码欧精品亚洲一区| 57pao一国产成永久免费| 亚洲色一区二区三区四区| 爱情岛论坛网亚洲品质自拍| 亚洲a一级免费视频| 亚洲精品蜜夜内射| 亚洲无线观看国产精品| 国产三级在线观看免费| 日韩免费码中文在线观看| 久久亚洲精品成人av无码网站| 色播在线永久免费视频| 在线观看人成视频免费无遮挡| 亚洲福利一区二区三区| 亚洲AV伊人久久青青草原| 99久久国产免费中文无字幕| 亚洲AV无码一区二区三区性色| 亚洲第一AV网站| 国产精品深夜福利免费观看| 久久这里只精品99re免费|