0

javascript から actionscript メソッドを呼び出そうとしていますが、flashObj.method() は関数ではないと表示されます。このメソッドは、フラッシュ オブジェクトのサブモジュール内で宣言しました。サブモジュールのメソッドを呼び出す方法

4

3 に答える 3

0

上記のように答えはあなたが使用する必要があると述べています

ExternalInterface.addCallback("nameOfFunctionAsCalledFromJS",nameOfFunctionInFlash);

2つの関数に異なる名前を使用することをお勧めします。これを使用して、さまざまなクラスの関数が公開されている場合でも、それらを公開することができます。ただし、モジュールが外部からロードされたswfsであると仮定すると、swfsをアプリケーションにロードするときは、LoaderContextを使用して、モジュールをロードするアプリと同じApplicationDomainおよびSecurityDomainにモジュールを設定する必要があります。

var lc:LoaderContext = new LoaderContext(true,ApplicationDomain.currentDomain,SecurityDomain.currentDomain);
loader.load(urlRequest,lc);

さらに、JSからアプリケーション(モジュールをロードするアプリケーション)へのアクセスを許可する必要があるため、JSからの呼び出しの前にallowDomainを呼び出す必要があります。

Security.allowDomain("yourdomain");
Security.allowInsecureDomain("yourdomai")
于 2012-04-27T07:47:19.803 に答える
0

見る ExternalInterface.addCallback()

これは、ドキュメント ルート (またはドキュメント クラス) に属するメソッドに対してのみ機能し、他のクラスのメソッドに対しては機能しないと確信しています。

于 2012-04-27T06:24:13.670 に答える
0

ソース コード付きの実行中のサンプルを次に示します。

http://www.redcodelabs.com/2012/04/calling-actionscript-method-from-javascript/

ExternalInterface クラスを調べる必要があります。必要なものはすべてそろっています。また、両側 (AS3 または JS) でのエラー処理にも注意する必要があります。

于 2012-04-27T09:05:06.787 に答える