<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來實現(xiàn)的JS與AS雙向通信,有朋友跟我提出疑問如果AS或者JS中都定義了同名函數(shù),那么會造成方法覆蓋嗎?這的確是個需要考慮的問題,通過測試證明,即使出現(xiàn)了同名方法的定義,它們也是相互獨立的,不會造成方法覆蓋。

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

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

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


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


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


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


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

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

    主站蜘蛛池模板: 亚洲无砖砖区免费| 亚洲国产精品无码久久SM | 国产99视频精品免费视频7| 亚洲人成网站日本片| 成年免费大片黄在线观看岛国| 亚洲经典在线观看| 91成人在线免费视频| 久久水蜜桃亚洲av无码精品麻豆| 在线观看特色大片免费网站 | 久久久无码精品亚洲日韩京东传媒| 国产免费一区二区三区在线观看| 日本红怡院亚洲红怡院最新| 国产一级片免费看| 亚洲美女人黄网成人女| 免费不卡视频一卡二卡| 亚洲人配人种jizz| 国产福利免费在线观看| 一级做a免费视频观看网站| 亚洲精品乱码久久久久久中文字幕| 在线观看免费无码视频| 亚洲电影国产一区| 欧美大尺寸SUV免费| 国产精品亚洲综合一区在线观看 | 国产精品久久久久影院免费| 高清免费久久午夜精品 | 亚洲高清美女一区二区三区| 国产妇乱子伦视频免费| 亚洲精品无码mⅴ在线观看| 国产在线不卡免费播放| 青柠影视在线观看免费高清| 亚洲日韩中文字幕| 四虎影院永久免费观看| 拍拍拍无挡视频免费观看1000| 久久久久久亚洲精品成人| 成人免费无码大片A毛片抽搐| 日本特黄特色AAA大片免费| 亚洲国产二区三区久久| 永久久久免费浮力影院| 两性色午夜视频免费网| 亚洲一区二区三区乱码在线欧洲| 亚洲精品视频在线观看你懂的|