0

こんにちは、

私のアクションスクリプトコードからJavaScript関数を呼び出そうとしていますが、機能していません。

as3:

if (ExternalInterface.available)
  {
  try
  {
    ExternalInterface.addCallback("changeDocumentTitle",null);
  } 
  catch(error:Error)

js (swfobject を使用した速度ファイル内)

function changeDocumentTitle() 
    {
        alert('call from SWF');
    }

誰が何が起こっているのか知っていますか?

4

2 に答える 2

7

Flex アプリ内から JS 関数を呼び出そうとしている場合は、ExternalInterface.addCallback(...) ではなく、ExternalInterface.call(...) を使用する必要があります。ドキュメントから:

public static function call(functionName:String, ... 引数):*

Flash Player コンテナによって公開される関数を呼び出し、0 個以上の引数を渡します。関数が使用できない場合、呼び出しは null を返します。それ以外の場合は、関数によって提供された値を返します。Opera または Netscape ブラウザでは再帰は許可されていません。これらのブラウザーでは、再帰呼び出しによって null 応答が生成されます。(再帰は、Internet Explorer および Firefox ブラウザーでサポートされています。)

コンテナーが HTML ページの場合、このメソッドはスクリプト要素で JavaScript 関数を呼び出します。

http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html

addCallback() は、ActionScript 関数を Flash アプリから HTML コンテナーに公開して、JavaScript 経由で呼び出せるようにする場合に使用します。

于 2009-05-19T19:52:50.227 に答える