Javascript与Flash通讯Demo
as:
package { import adobe.utils.CustomActions; import flash.display.*; import flash.events.*; import flash.utils.Timer; import flash.external.ExternalInterface; public class Test extends Sprite { public function Test() { addExternalInterface(); } private function addExternalInterface():void { function hello(sname:String):void { trace("hello," + sname); } function isJavaScriptReady():Boolean { var isReady:Boolean = ExternalInterface.call("isJSReady"); return isReady; } function jsReadyHandler():void { trace("javascript js ready"); ExternalInterface.addCallback("hello", hello); ExternalInterface.call("flashReadyHandler"); } if(ExternalInterface.available){ try { if (isJavaScriptReady()) { jsReadyHandler(); }else{ var timerReady:Timer = new Timer(100, 0); timerReady.addEventListener(TimerEvent.TIMER,function(evt:TimerEvent):void { trace("checking..."); if (isJavaScriptReady()) { Timer(evt.target).stop(); jsReadyHandler(); } }); timerReady.start(); } }catch (err:SecurityError) { trace(err.message ); }catch (err:Error) { trace(err.message ); } } } } }
html:
Test