2015-05-02 53 views
0

我试图做一个类,但是我得到这些错误:1120:未定义的属性阶段的访问

... \ SubtitleLoader.as,第14行,第8列1120:不确定 财产的访问阶段。 ... \ SubtitleLoader.as,第20行,第10列1061:通过带有静态类型SubtitleLoader的参考 将 调用为可能未定义的方法addEventListener。

这里是我的代码:

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

您不能添加事件,因为您的类不会扩展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是为类名保留的。

+0

感谢您的解决方案和提示 – nikel

+0

圣牛我实际上回答了一个问题,它得到了接受和一切。现在我几乎有足够的互联网点留下评论! 没问题,很乐意帮忙。 – user45623