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);
        }
    }
}

Как я могу это исправить.


person nikel    schedule 02.05.2015    source источник


Ответы (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 зарезервирован для имен классов.

person user45623    schedule 02.05.2015
comment
Святая корова, я на самом деле ответил на вопрос, и его приняли, и все. Теперь у меня почти достаточно интернет-очков, чтобы оставлять комментарии! Нет проблем, рад помочь. - person user45623; 02.05.2015