2011-11-10 9 views
1

ステージ上のButtonのクラスにイベントリスナーを追加しようとするとエラーが発生します。AS3/Flash - ボタンのカスタムクラスにイベントリスナーを追加する - エラー1061

1061:定義されていないメソッドaddEventListenerを静的型Classの参照で呼び出します。私のステージに

私はインスタンス名stopBtnとボタンがあり、これもclasses.stopBtn(「クラス」と呼ばれるフォルダ内にstopBtn.as)と呼ばれるActionScriptクラスにエクスポートされます。ボタンは、メインのタイムラインの最初のキーフレーム上でその層

上の他のボタンを有する層でエラーがstopBtn.asファイルの10行目にある:

package classes { 

    import flash.display.SimpleButton; 
    import flash.events.MouseEvent; 
    import flash.display.MovieClip; 

    public class stopBtn extends SimpleButton { 

     public function stopBtn() { 
      stopBtn.addEventListener(MouseEvent.CLICK, stopButtonFunction); 
     } 

     function stopButtonFunction(event:MouseEvent):void {   
       MovieClip(root).trackPosition = 0; 
       MovieClip(root).mySoundChannel.stop(); 
       MovieClip(root).playPause.gotoAndPlay(2); 
     } 

    } 

} 

私は多くのスレッドを発見しましたエラーコード1061のためにそれらのうちの私の問題に関連しているようです!私はすべてのイベント・タイプを確保しようとしてい

は、この1つはかなり明白であるべき

package classes { 

    import flash.display.SimpleButton; 
    import flash.events.MouseEvent; 
    import flash.display.MovieClip; 

    public class stopBtn extends SimpleButton { 

     public function stopBtn() { 
      addEventListener(MouseEvent.CLICK, stopButtonFunction); 
     } 

     function stopButtonFunction(event:MouseEvent):void {   
       MovieClip(root).trackPosition = 0; 
       MovieClip(root).mySoundChannel.stop(); 
       MovieClip(root).playPause.gotoAndPlay(2); 
     } 

    } 

} 

答えて

1

あなたのコードを使用してインポートされます。オブジェクトではなく、クラスにイベントリスナーを追加しようとしています。

stopBtn.addEventListener(MouseEvent.CLICK, stopButtonFunction); 

stopBtnは、作成したクラスの名前です。インスタンスにイベントリスナーを追加するには、ボタンオブジェクトにイベントリスナーを追加することを保証します

this.addEventListener(MouseEvent.CLICK, stopButtonFunction); 

にあなたのコードを変更し、あなたが(それが許可されていないにしようとしていたようではないクラス、あなたが見たように、それは意味をなさないので)

+0

私はあなたがそこで何を参照してください!このクラスは特にButton 'stopBtn'のためです。私はstopBtnを定義する必要はありません。イベントリスナーの前には、既にstopBtnで動作しているIMが分かっています。 ありがとうございます! :) – TomFrom

+2

@TomFrom、あなたは間違っています。 'stopBtn.add ...'と書いたとき、コンパイラはクラス名として 'stopBtn'をとりました(' public class stopBtn extends SimpleButton {'。そのstopBtnを削除するとコンパイラはそれをオブジェクトの暗黙の参照として取ります。 –

+1

これを追加する必要はありません。クラスメソッドのthis.addEven ...とaddEvent ...と等しいためです。 – zaynyatyi

3

ようにする必要があり

Import flash.events.*; but this makes no difference. 
+0

"イベントリスナーをインスタンスに追加するには、この解決策には何かがないようです。 – shipshape

+0

おっと、私は2つの座席でこの答えを書き、2つの間の思考の訓練を失ったため、ほとんどが起こった:P –

関連する問題