addEventListener ENTER_FRAME

时间:2011-01-27 23:26:42

标签: actionscript-3

当我尝试创建addEventListener时出现错误: 第20行1046:未找到类型或不是编译时常量:事件。

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

        }
    }
}

2 个答案:

答案 0 :(得分: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类是显示对象。我使用Sprite关键字将其设为extends。请注意,您需要导入正在扩展的课程,就像我已经完成的那样。

答案 1 :(得分:0)

指示:

this.addEventListener(Event.ENTER_FRAME,this.myFunction); 使用它来自引用播放器实例,但是this.myFunction是多余的,因为myFunction已经是属于播放器实例的方法。

改为使用: this.addEventListener(Event.ENTER_FRAME,myFunction);