標籤:
HtmlLoader 的屬性window是載入到 HTML 控制項中的內容的全域 JavaScript 對象,通過這個對象能夠方便的和頁面js通訊。
AS代碼:
import flash.html.HTMLLoader;import flash.net.URLRequest;import flash.events.MouseEvent;var html:HTMLLoader = new HTMLLoader();html.width = 960;html.height = 540;html.load(new URLRequest("test.html"));html.window.sendToFlash = sendToFlash;this.addChild(html);function sendToFlash(str:String):void{ trace(str);//擷取js傳遞過來的資料}btn.addEventListener(MouseEvent.CLICK,onSendClick);function onSendClick(e:MouseEvent):void{ html.window.asCallJs("AIR發送到JS的資料");}
JS代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title></title> <meta name="google" value="notranslate" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css" media="screen"> html, body { height:100%; } body { margin:0; padding:0; overflow:auto; text-align:center; background-color: #cccccc; } object:focus { outline:none; } #flashContent { display:none; } </style> <script language="JavaScript"> function send(){ sendToFlash("JS發送到AS3的資料"); } function asCallJs(param){ alert("AIR直接調用js,並且可以傳遞參數:"+param); } </script> </head> <body> <input type="button" value="send" onclick="send()" /><br /> </body></html>
[AS3.0] HTMLLoader與js互動