0

私はメソッドを持っています:myMethod() {}私はjavascriptにアクセスしやすくしたいのです。私は研究のビットを行って、あなたがExernalInterfaceへのコールバックを追加する必要が出て見つけたので、ここで私がやっていることだ。Flash/ActionScript3のExernal Interfaceにコールバックを追加する際の問題の参照

ExternalInterface.addCallback("invokeMyMethod", myMethod); 

を今、私はそれのフラッシュで私のWebページをロードするとき、私が取得しますエラー:

ReferenceError:エラー#1065:変数myMethodが定義されていません。グローバルの$ INITでメインの$ CINIT() (で )MyMethodははメインクラス内に含まれている

...ここMain.asがどのように見えるかです:

package { 
    import flash.external.ExternalInterface; 
    import flash.events.Event; 
    //import a bunch of other things... 

    if(ExternalInterface.available) { 
     ExternalInterface.addCallback("invokeMyMethod", myMethod); 
    } 

    public class Main extends Sprite { 
     //A bunch of other methods... 

     public function myMethod(str:String):void { 
     //Do something here 
     } 
    } 
} 

私は作り方見当もつかないExernalInterface.addCallbackmyMethodが存在することを認識しています...誰でもアイデアはありますか?

おかげで、
マット

答えて

0

を作品上記ヤコブの答えはうまく。しかし、それは今の静的メソッドから非静的変数にアクセスしようとしていたので、それは他のエラーを作成し...だから私はこの試みた:このように、私のメインクラスに

if(ExternalInterface.available) { 
     ExternalInterface.addCallback("invokeMyMethod", myMethod); 
    } 

:私は移動

を:

package { 
    import flash.external.ExternalInterface; 
    import flash.events.Event; 
    //import a bunch of other things...  

    public class Main extends Sprite { 
     //A bunch of other methods... 

     if(ExternalInterface.available) { 
     ExternalInterface.addCallback("invokeMyMethod", myMethod); 
     } 

     public function myMethod(str:String):void { 
     //Do something here 
     } 
    } 
} 

そして、それは

0

あなたMyMethodは機能はメインクラスの内部にあるが、(if文で)それをあなたの参照がありません。あなたはMyMethodは、静的な作る場合、あなたのaddCallback文は次のようになります。

ExternalInterface.addCallback("invokeMyMethod", Main.myMethod); 

それとも、どこかメインのインスタンスを持っている場合、あなたは書くことができます:

ExternalInterface.addCallback("invokeMyMethod", myObj.myMethod); 
+0

うまく働いたが、それは、静的作る以外にそれを行うための他の方法はありますか?私は入れてみました:ExternalInterface.addCallback( "invokeMyMethod"、Main.myMethod);メインクラスでは、私はまだ同じ参照エラーを取得...私は他に何を考えることができません。 – Matt

+0

btw staticはそのエラーを取り除きましたが、それは他のものを作成しました。そのため、私はそれを静的にすることを避けたいのです – Matt

関連する問題