テキストの色と四角形の背景色をフラッシュから JavaScript に取得したいと考えています。これに最適な方法は何ですか?たとえば、フラッシュ ムービーが読み込まれるときに、そのテキストの色と四角形の背景色を JavaScript に送信したいとします。次に、javascript はこの色を html テキストボックスに表示します。これを行う方法はありますか?
ありがとう
アシッシュ
2 に答える
ExternalInterfaceクラスを使用できます
ActionScript
フラッシュ ムービーの初期化時に、必要な可能なコールバックを追加する必要があります。この場合、コールバックは必要ありません。JS を呼び出すだけです。とにかくそれを行う方法を知っているように、私はその方法を説明します)
import flash.external.ExternalInterface;
function init(){
var jsready:Boolean = ExternalInterface.available;
if(jsready) { //checks if External callbacks can be made
sendColors();//send the colors when movie is initializing
try{
//You add the callback, when JS calls getColors, actionscript will call sendColors() function
ExternalInterface.addCallback("getColors", sendColors);
} catch (error:SecurityError) {
trace("A SecurityError occurred: " + error.message + "");
} catch (error:Error) {
trace("An Error occurred: " + error.message + "");
}
}
}
function sendColors(){
//send your colors to JS
ExternalInterface.call('receiveColorsFromFlash',color1,color2);
}
Javascript
以下を使用した場合:
<object id="myflash1">
<embed id="myflash2">
</embed>
</oject>
または:
<object id="myflash1">
<object id="myflash2">
</object>
</oject>
複数のブラウザ用に、フラッシュをコードに埋め込む方法。埋め込みタグとオブジェクト タグの IDが異なることを確認してください。または、たとえば Firefox ブラウザーの場合、2 番目のオブジェクトの呼び出しは行われません。
これは、DOM にロードされた正しい Flash オブジェクトを常に返すこの関数を追加することで解決できます。これは時代遅れの (5 年前の) スニペットであり、もう機能しない可能性があります。これには、JQuery またはその他のソリューションを使用してください。
別の方法で flashobject (SWFObject.js またはその他) を埋め込む場合は、jquery / getElementByid を使用して 1 つのオブジェクトをターゲットにすることができます。
function thisMovie() {
if (navigator.appName.indexOf("Microsoft") != -1) {
return document.getElementById("myflash1");
}else if (navigator.vendor.indexOf("Apple") != -1) {
return document.getElementById("myflash1");
} else {
return document.getElementById("myflash2");
}
}
Flash が呼び出す JS 関数:
function receiveColorsFromFlash(color1,color2) {
//do your thing with the colors
}
フラッシュに色を要求する JS 関数
thisMovie().getColors();
あなたはExternalInterfaceクラスを見ることができますhttp://www.spikything.com/blog/index.php/2009/08/23/externalinterface_howto/