3

ウェブページでは、javascript と as3 は次のように設定されています。

  1. Javascript がページに swf をロードします。
  2. swf 呼び出しExternalInterface.call("javascriptFunctionName", "");
  3. JavascriptjavascriptFunctionName()は、ExternalInterface.addCallback によって設定された actionscript 関数を使用します

現在、javascriptFunctionName()actionscript のコールバック関数にアクセスできることを確認することから始めます。

このチェックは必要ですか?それとも、actionscript が javascript 関数を呼び出すことができたという事実は、アクセスが許可されていることを示していますか?

編集:より具体的には、私のコードは機能します。パーミッションの違うサードパーティのページに入れられないか心配です。

4

2 に答える 2

2

JS から AS3 へ、および AS3 から JS へは別の動作であるため、一方向に動作するからといって、反対方向に動作するわけではありません。

JS が SWF 内で AS3 メソッドを呼び出せるようにするには、ExternalInterface.addCallbackを呼び出して各 AS3 メソッドを登録する必要があります。これは、JS から呼び出す AS3 メソッドごとに 1 回です。

次のような AS3 メソッドがあるとします。

function myFunction(value:String):void
{
    //do something here
}

最初に登録する必要があります。

//first parameter is name of function to use in JS.
//second parameter is the AS3 function itself.
ExternalInterface.addCallback("myAS3function", myFunction);

次に、JS から呼び出すことができます。例えば:

document.getElementById('mySWF').myAS3function("Hello World");
于 2013-08-18T14:44:43.567 に答える