2015-05-02 52 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