2011-01-27 5 views
0

addEventListenerを作成しようとするとエラーが発生します。 Line 20 1046:タイプが見つからないか、コンパイル時定数ではありません:Event。addEventListener ENTER_FRAME

package player { 
    import flash.media.Sound; 
    import flash.net.URLRequest; 

    public class Stream { 
     private var _Sound = null; 
     private var _Channel = null; 

     function Stream(){ 
      this._Sound = new Sound(); 
     } 

     public function play(url){ 
      this._Sound.load(new URLRequest(url)); 
      this._Channel = this._Sound.play(); 

      this.addEventListener(Event.ENTER_FRAME, this.myFunction); 
     } 

     private function myFunction(e:Event){ 

     } 
    } 
} 
+0

私の改訂版の回答をご覧ください。 –

+0

StreamクラスでEventDispatcherを拡張し、flash.events.EventDispatcherをインポートします – TheDarkIn1978

+0

「this」をすべて使用する必要はありません。プレフィックスはここにあります。 –

答えて

4

import flash.events.Event;package player {の下で先頭になります。

イベントをインポートする必要があります。

更新:

package player { 
    import flash.events.Event; 
    import flash.media.Sound; 
    import flash.net.URLRequest; 
    import flash.display.Sprite; 

    public class Stream extends Sprite { 
     private var _Sound = null; 
     private var _Channel = null; 

     public function Stream(){ 
      this._Sound = new Sound(); 
     } 

     public function play(url){ 
      this._Sound.load(new URLRequest(url)); 
      this._Channel = this._Sound.play(); 

      this.addEventListener(Event.ENTER_FRAME, this.myFunction); 
     } 

     private function myFunction(e:Event){ 

     } 
    } 
} 

このコードを使用します。通常、表示オブジェクトにENTER_FRAMEイベントを追加します。 Spriteクラスは表示オブジェクトです。私はextendsキーワードを使ってSpriteにしています。私が行ったように、あなたが拡張しているクラスをインポートする必要があることに注意してください。

+0

ありがとう! :)実際に私はSpriteで拡張しようとしましたが、クラス – clarkk

+0

btwをインポートするのを忘れました。 addEventListenerを使用してmyFunctionに引数を渡すにはどうすればよいですか? – clarkk

+1

引数をリスナーから直接渡すことはできません。これを行うには、 'Event'を拡張して変数を作成する独自のイベントクラスを作成する必要があります。 –

0

命令:

this.addEventListener(Event.ENTER_FRAME、this.myFunction)。 はこれを使用してプレーヤーインスタンスを自己参照しますが、myFunctionはすでにプレーヤーインスタンスに属するメソッドであるため、this.myFunctionは冗長です。

代わりに、次を使用してください。 this.addEventListener(Event.ENTER_FRAME、myFunction);

+0

これは次のようになります:Line 18 \t 1061:参照によって、おそらく未定義のメソッドaddEventListenerを呼び出します静的型プレーヤー:ストリーム。 import flash.events.Eventを追加しました。一番上に – clarkk