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();
}
}
Надеюсь, что это может помочь.