Javascript 調(diào)用 ActionScript 的簡單方法
1. 在Flex中,ActionScript調(diào)用Javascript是比較簡單的,說白了就是,在html里,怎么調(diào)用Javascript,在ActionScript就怎么調(diào)用就可以了
2. 如果用js調(diào)用as,就稍微麻煩一點,其實也比較簡單
MXML代碼:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com//mxml" layout="vertical" horizontalAlign="left" backgroundColor="white" initialize="init()"> <mx:Label text="城市名稱:"/> <mx:List id="cityList" width="" height="" dataProvider="{cities}"/> <mx:ArrayCollection id="cities"> <mx:String>北京</mx:String> <mx:String>上海</mx:String> </mx:ArrayCollection> <mx:Script> <![CDATA[ private function init(): void { //注冊回調(diào)函數(shù)供JavaScript調(diào)用 ExternalInterface.addCallback("callActionScript", asFunctionByJs); } private function asFunctionByJs(city: String): void { cities.addItem(city); } ]]> </mx:Script> </mx:Application>
HTML代碼(這些代碼都是flex builder自動生成的,用于將flash嵌入到網(wǎng)頁里,不用仔細(xì)看這些代碼,注意黃色背景的部分,這是關(guān)鍵部分,是我加入到)
<!-- saved from url=(0014)about:internet --> <html lang="en"> <!-- Smart developers always View Source. This application was built using Adobe Flex, an open source framework for building rich Internet applications that get delivered via the Flash Player or to desktops via Adobe AIR. Learn more about Flex at http://flex.org // --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-" /> <!-- BEGIN Browser History required section --> <link rel="stylesheet" type="text/css" href="history/history.css" /> <!-- END Browser History required section --> <title></title> <script src="AC_OETags.js" language="javascript"></script> <!-- BEGIN Browser History required section --> <script src="history/history.js" language="javascript"></script> <!-- END Browser History required section --> <style> body {}{ margin: px; overflow:hidden } </style> <script language="JavaScript" type="text/javascript"> <!-- // ----------------------------------------------------------------------------- // Globals // Major version of Flash required var requiredMajorVersion = 9; // Minor version of Flash required var requiredMinorVersion = 0; // Minor version of Flash required var requiredRevision = 124; // ----------------------------------------------------------------------------- // --> </script> <script type="text/javascript"> function callActionScript(value) { //根據(jù)id獲取flash實例,在這里id是CallAsFromJs,可以從Embed var flash = (navigator.appName.indexOf ("Microsoft") !=-)?window["CallAsFromJs"]:document["CallAsFromJs"]; //調(diào)用ActionScript注冊的回調(diào)方法 flash.callActionScript(value); } </script> </head> <body scroll="no"> 輸入城市名稱:<input type="text" id="newCityName"/><input type="button" value="添加城市" onclick="callActionScript(newCityName.value);"/> <script language="JavaScript" type="text/javascript"> <!-- // Version check for the Flash Player that has the ability to start Player Product Install (6.0r65) var hasProductInstall = DetectFlashVer(6, 0, 65); // Version check based upon the values defined in globals var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision); if ( hasProductInstall && !hasRequestedVersion ) { // DO NOT MODIFY THE FOLLOWING FOUR LINES // Location visited after installation is complete if installation is required var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn"; var MMredirectURL = window.location; document.title = document.title.slice(0, 47) + " - Flash Player Installation"; var MMdoctitle = document.title; AC_FL_RunContent( "src", "playerProductInstall", "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"", "width", "100%", "height", "100%", "align", "middle", "id", "CallAsFromJs", "quality", "high", "bgcolor", "#ffffff", "name", "CallAsFromJs", "allowScriptAccess","sameDomain", "type", "application/x-shockwave-flash", "pluginspage", "http://www.adobe.com/go/getflashplayer" ); } else if (hasRequestedVersion) { // if we've detected an acceptable version // embed the Flash Content SWF when all tests are passed AC_FL_RunContent( "src", "CallAsFromJs", "width", "%", "height", "%", "align", "middle", "id", "CallAsFromJs", "quality", "high", "bgcolor", "#ffffff", "name", "CallAsFromJs", "allowScriptAccess","sameDomain", "type", "application/x-shockwave-flash", "pluginspage", "http://www.adobe.com/go/getflashplayer" ); } else { // flash is too old or we can't detect the plugin var alternateContent = 'Alternate HTML content should be placed here. ' + 'This content requires the Adobe Flash Player. ' + '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>'; document.write(alternateContent); // insert non-flash content } // --> </script> <noscript> <object classid="clsid:DCDBE-AED-cf-B-" id="CallAsFromJs" width="%" height="%" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"> <param name="movie" value="CallAsFromJs.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="allowScriptAccess" value="sameDomain" /> <embed src="CallAsFromJs.swf" quality="high" bgcolor="#ffffff" width="%" height="%" name="CallAsFromJs" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"> </embed> </object> </noscript> </body> </html>
總結(jié),js調(diào)用as,大概分為3步:
1.as使用ExternalInterface.addCallback注冊回調(diào)函數(shù)
2.在js函數(shù)中根據(jù)flash在網(wǎng)頁中的id獲取實例
3.用上面獲取到flash實例,調(diào)用as的函數(shù)
以上所述是小編給大家介紹的Javascript 調(diào)用 ActionScript 的簡單方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript html5利用FileReader實現(xiàn)上傳功能
這篇文章主要為大家詳細(xì)介紹了JavaScript html5利用FileReader實現(xiàn)上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03ros::spin() 和 ros::spinOnce()函數(shù)的區(qū)別及詳解
這篇文章主要介紹了ros::spin() 和 ros::spinOnce()函數(shù)的區(qū)別及詳解的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價值,感謝興趣的朋友一起看看吧2016-10-10JavaScript 2048 游戲?qū)嵗a(簡單易懂)
使用javascript制作的2048小游戲非常好玩,有意思,下面給大家分享使用javascript代碼制作的2048游戲,需要的朋友參考下吧2016-03-03javascript currying返回函數(shù)的函數(shù)
currying函數(shù)是一種返回函數(shù)的函數(shù),是閉包最偉大的應(yīng)用之一。有關(guān)閉包更詳細(xì)的定義可參見這里與這里。如下currying函數(shù)的一種定義。2009-11-11JavaScript 利用StringBuffer類提升+=拼接字符串效率
JavaScript 利用StringBuffer類提升+=拼接字符串效率,需要的朋友可以參考下。2009-11-11