ExternalInterface はあなたの友達です:
http://help.adobe.com/nl_NL/Flash/CS5/AS3LR/flash/external/ExternalInterface.html
ExternalInterface を使用する際のヒント:
allowScriptAccess
HTML埋め込みコードで「常に」に設定
- Flash の id が HTML コードに含まれていることを確認してください
簡単な例:
1. JavaScript からフラッシュに値を取得する
// actionscript 3 code
if (ExternalInterface.available)
{
var url:String = ExternalInterface.call("document.location");
// output to textfield
var t:TextField = new TextField();
addChild(t);
t.text = url;
}
2. フラッシュからパラメーターを使用して関数を呼び出す
// actionscript 3 code
if (ExternalInterface.available)
{
var result:String = "Flash rocks"
ExternalInterface.call("alert", result);
}
3. JavaScript から Flash へのパラメーターを指定して関数を呼び出します。
// javascript
window.onLoad = function()
{
document.getElementById('flashId').doSomething("javascript rocks");
}
.. と
// actionscript 3
if (ExternalInterface.available)
{
ExternalInterface.addCallback("doSomething", handleSomethingFromJavascript);// links js function to as3 function
function handleSomethingFromJavascript(value:String):void
{
// output to textfield
var t:TextField = new TextField();
addChild(t);
t.text = value;
}
}
統合がほとんど無痛であることがわかるように、Flash と JavaScript の間で多くのことを行うことができます! 唯一の注意点は、フラッシュ内では ExternalInterface を使用できないため、ブラウザーでテストする必要があることです。を使用して透明な Flash オブジェクトを作成できますwmode="transparent"
。display:none
またはvisibility
(css)を使用することはできません。フラッシュが実行されないか、動作が遅くなるためです。確実に実行し続けるposition:fixed
には、ページの隅などに配置します (css)。ブラウザーは、画面外または非アクティブ (つまり、非アクティブなタブ) のときに、一種のスリープ モード (低速) でフラッシュ オブジェクトを実行します。