Javascript を使用して Flash で関数を呼び出す必要があります。この目的のために、ExternalInterface クラスを使用しています ( http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/external/ExternalInterface.htmlの最後に記載されている例)。しかし、それは私にはうまくいきません。
SWF は HTML ページで次のように宣言されます。
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="305" height="270" id="DemoPlayer" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="DemoPlayer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /> <embed src="DemoPlayer.swf" quality="high" bgcolor="#ffffff" width="305" height="270" name="DemoPlayer" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
Javascriptを使用してFlashから関数を呼び出してみました:
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
function sendToActionScript(value) {
thisMovie("DemoPlayer").sendToActionScript(value);
}
フラッシュには次のものがあります。
ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
FireFox で次のメッセージが表示されます:「NPObject のメソッドの呼び出しでエラーが発生しました! [プラグイン例外: Actionscript でエラーが発生しました。try/catch ブロックを使用してエラーを見つけてください。].」
パラメーター allowScriptAccess" の値を "always" に変更しましたが、これは役に立ちません。これは、" 「Adobe Flash」*.fla ファイルの「Action-Frame」タブ (フラッシュは初めてです)。