AS3: Почему я получаю так много ошибок 1120?

Я начал новый документ AS3 сегодня во Flash CC. Моя сцена была пуста. Я сделал класс документа файлом.as с именем test.as - мой.fla также назывался test.fla.

Поэтому я создал мувиклип под названием mirror и присвоил ему имя AS3-соединения mirror. Я положил его в свою библиотеку и удалил со сцены. Затем я пошел к своему внешнему файлу.as и написал это:

package  {

    import flash.display.MovieClip;
    import flash.events.MouseEvent;


    public class test extends MovieClip {

        public var mirror1:MovieClip = new mirror();

        public function dragMirror1(event:MouseEvent):void
        {
            mirror1.startDrag();
        }
        public function releaseMirror1(event:MouseEvent):void
        {
            mirror1.stopDrag();
        }
        mirror1.addEventListener(MouseEvent.MOUSE_DOWN,dragMirror1);
        mirror1.addEventListener(MouseEvent.MOUSE_UP,releaseMirror1);
    }

}

Это казалось совершенно безвредным кодом, но когда я запустил код, я получил четыре ошибки:

C: \ Users \ Raphael \ Creative Cloud Files \ LightStage \ Testing \ test.as, строка 20, столбец 48    1120: доступ к неопределенному свойству releaseMirror1.
C:\Users\Raphael\Creative Cloud Files\LightStage\Testing\test.as, строка 20, столбец 3 1120: доступ к неопределенному свойству mirror1.
C:\Users\Raphael\Creative Cloud Files\LightStage\Testing\test.as, строка 19, столбец 50    1120: доступ к неопределенному свойству dragMirror1.
C:\Users\Raphael\Creative Cloud Files\LightStage\Testing\test.as, строка 19, столбец 3 1120: доступ к неопределенному свойству mirror1.

У кого-нибудь есть идеи, почему это происходит? Возможно, я упускаю что-то простое, но я создал несколько новых файлов.fla и.as для проверки этого, и это происходит, даже когда я переписываю код и использую разные имена связей AS3.

1 ответ

Решение

Чтобы избежать этих ошибок, вы должны использовать свой mirror1.addEventListener() внутри конструктора вашего класса после добавления вашего mirror возражать против вашей стадии:

public class Test extends MovieClip {

    public var mirror1:MovieClip = new mirror();

    public function Test():void 
    {
        addChild(mirror1);
        mirror1.addEventListener(MouseEvent.MOUSE_DOWN, dragMirror1);
        mirror1.addEventListener(MouseEvent.MOUSE_UP, releaseMirror1);
    }
    public function dragMirror1(event:MouseEvent):void
    {
        mirror1.startDrag();
    }
    public function releaseMirror1(event:MouseEvent):void
    {
        mirror1.stopDrag();
    }

}

Надеюсь, что это может помочь.

Другие вопросы по тегам