javascript から actionscript メソッドを呼び出そうとしていますが、flashObj.method() は関数ではないと表示されます。このメソッドは、フラッシュ オブジェクトのサブモジュール内で宣言しました。サブモジュールのメソッドを呼び出す方法
3 に答える
上記のように答えはあなたが使用する必要があると述べています
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")
見る ExternalInterface.addCallback()
これは、ドキュメント ルート (またはドキュメント クラス) に属するメソッドに対してのみ機能し、他のクラスのメソッドに対しては機能しないと確信しています。
ソース コード付きの実行中のサンプルを次に示します。
http://www.redcodelabs.com/2012/04/calling-actionscript-method-from-javascript/
ExternalInterface クラスを調べる必要があります。必要なものはすべてそろっています。また、両側 (AS3 または JS) でのエラー処理にも注意する必要があります。