Over 10 years of community discussion and knowledge are maintained here as a read-only archive.
import flash.external.ExternalInterface;public static const NAME:String = 'ExternalInterfaceMediator';public function ExternalInterfaceMediator(){ super(NAME, null); if (ExternalInterface.available) { // a method that will be invoked from JavaScript ExternalInterface.addCallback("sendFlashSomeData", onSendFlashSomeData); }}protected function onSendFlashSomeData(dataForFlash:Object):void{ sendNotification( PROCESS_EXTERNAL_DATA, dataForFlash ); // let a Command handle this}override public function listNotificationInterests():Array{ return [ SEND_DATA_TO_JS, SIMPLE_JS_CALL, QUERY_JS ];}override public function handlNotificationInterests(note:INotification):void{ if (ExternalInterface.available) { switch (note.getName()) { SEND_DATA_TO_JS: ExternalInterface.call(note.getBody() as Object); break; SIMPLE_JS_CALL: ExternalInterface.call("noArgsJSMethod"); break; QUERY_JS: var jsq:Boolean = ExternalInterface.call("jsCheckStringMethod", note.getBody as String); sendNotification(JS_QUERY_RESULT, jsq); break; } }}