1120:访问未定义的属性阶段

时间:2015-05-02 09:32:01

标签: actionscript-3 flash-cc

我正在尝试上课但是我遇到了这些错误:

  

... \ SubtitleLoader.as,第14行,第8列1120:未定义的访问   物业阶段。 ... \ SubtitleLoader.as,第20行,第10栏1061:致电   通过引用可能未定义的方法addEventListener   使用静态类型SubtitleLoader。

这是我的代码:

package
{
    import flash.events.*;
    import flash.display.Stage;
    import flash.net.URLRequest;
    import flash.net.URLLoader;

    public class SubtitleLoader
    {
        private var str:String;

        public function init():void
        {
            if (stage)
            {
                LoadText();
            }
            else
            {
                this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
            }
        }

        private function onAddedToStage(event:Event):void
        {
            this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);

            LoadText();
        }

        private function LoadText():void
        {
            var url:URLRequest = new URLRequest("aman.srt");
            var urlLoader:URLLoader = new URLLoader();
            urlLoader.load(url);
            urlLoader.addEventListener(Event.COMPLETE, onComplete);
        }

        private function onComplete(event:Event):void
        {
            trace(event.data);
        }
    }
}

我该如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

您无法添加事件,因为您的类不会扩展EventDispatcher。您的类无法添加到舞台中,因为它不会扩展任何显示类。您可能希望扩展flash.display.Sprite(也扩展EventDispatcher):

package
{
    import flash.events.*;
    import flash.display.Sprite; //import sprite
    import flash.display.Stage;
    import flash.net.URLRequest;
    import flash.net.URLLoader;

    public class SubtitleLoader extends Sprite //extend sprite, inheriting EventDispatcher as well
    {

另外,为函数名称UpperCamelCase(LoadText)提供错误的编码风格。 UpperCamelCase保留给类名。