addEventListener ENTER_FRAME

quando cerco di fare un addEventListener ottengo un errore:
Linea 20 1046: Tipo non è stato trovato o non è stata una costante della fase di compilazione: Evento.

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){

        }
    }
}
  • Si prega di vedere il mio rivisto risposta.
  • rendere il vostro Flusso di classe che estende EventDispatcher e import flash.eventi.EventDispatcher
  • Non è necessario utilizzare tutti i “questo.” prefissi qui.
InformationsquelleAutor clarkk | 2011-01-27

 

2 Replies
  1. 4

    import flash.events.Event; va in alto sotto package player {.

    È necessario importare il caso prima di utilizzarlo.

    Aggiornamento:

    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){
    
            }
        }
    }

    Utilizzare questo codice. In generale, si vuole aggiungere un ENTER_FRAME evento di un oggetto di visualizzazione. Il Sprite classe è un oggetto di visualizzazione. Sto facendo un Sprite utilizzando il extends parola chiave. Si prega di notare che è necessario importare la classe che si sta estendendo, come ho fatto.

    • grazie! 🙂 in realtà ho provato a estendere la Sprite, ma ho dimenticato di importare la classe
    • btw. come faccio a passare argomenti al myFunction con addEventListener?
    • Non è possibile passare argomenti direttamente attraverso un ascoltatore. Per farlo, è necessario creare la propria classe di evento che si estende Event e rendere una variabile.
    • sarebbe meglio estendere EventDispatcher piuttosto che Sprite, che viene fornito con un sacco di inutile overhead, dato che la classe non è una Sprite.
    • Puoi provare as3 segnali invece di eventi per passare gli argomenti più facilmente github.com/robertpenner/as3-signals
  2. 0

    L’istruzione:

    questo.addEventListener(Event.ENTER_FRAME, questo.myFunction);
    utilizza questo auto-riferimento il caso del giocatore, ma questo.myFunction è ridondante, in quanto myFunction è già un metodo appartenente al caso del giocatore.

    Invece, utilizzare:
    questo.addEventListener(Event.ENTER_FRAME, myFunction);

    • ora ho questa: Linea 18 1061: Chiamata eventualmente definito il metodo addEventListener attraverso un riferimento statico tipo di giocatore:Stream. Ho aggiunto import flash.eventi.Evento; in alto

Lascia un commento