Вы должны попробовать поместить этот вызов в обработчик события onCreationComplete:
protected function onCreationComplete(event:FlexEvent):void
{
//just in case to prevent security exceptions:
Security.allowDomain("*.yourdomain.com");
Security.allowDomain("localhost");
ExternalInterface.addCallback("addBody", addBody);
}
Возникла ошибка, возможно, из-за того, что при обработке строки addCallback
не было метода addBody
.
Обновление вызов метода addBody
из JavaScript
в вашем html вы должны встроить SWF ~, например:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="your_flash_app" width="1000" height="520"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="YourFlashApp.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#bee3f6" />
<param name="allowScriptAccess" value="always" />
<embed src="YourFlashApp.swf" quality="high" bgcolor="#bee3f6" width="1000" height="520" name="your_flash_app" align="middle" play="true" loop="false"
quality="high" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
Чтобы вызвать метод addBody
из javascript, сначала вы должны найти там флэш-приложение:
//this only works for sure in IE browsers, but there are workarounds
//to deal with the others.
var flashApp = document.getElementById("your_flash_app");
flashApp.addBody();