1120: Доступ к неопределенной стадии свойства
Я пытаюсь сделать класс, однако я получаю эти ошибки:
... \ 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 ответ
Вы не можете добавлять события, потому что ваш класс не расширяет 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 зарезервирован для имен классов.