Я новичок в ActionScript, и я постоянно пытался создать игру с боковой прокруткой. Все шло хорошо, пока я не понял, что мне нужна функция «игра окончена». Проблема в том, что у меня есть много объектов мувиклипов с собственными именами экземпляров, к которым я обращаюсь из моего класса документа.
Однако теперь у меня есть новый класс документа, который инициирует мой старый класс документа для запуска игры, а также запускает игру поверх экрана, так что я могу сбросить игру. За исключением того, что теперь я получаю сообщение об ошибке свойства undefined (заполните поле) для всех 50 объектов моего экземпляра.
Итак, мой вопрос в том, как заставить flash распознавать и разрешать классу, не являющемуся документом, управлять этими экземплярами Movie Clip.
Я создал небольшой пример, чтобы проиллюстрировать, что я пытаюсь сделать.
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Stage;
public class Test extends MovieClip {
public static var gstage:Stage;
public function Test() {
// constructor code
var playScreen:Go = new Go();
addChild( playScreen );
}
}
}
Выше мой класс документа "moveme - это имя экземпляра.
Другой класс, который был бы моим старым классом документа, это
package {
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import Test;
public class Go extends MovieClip {
public var test:Test;
public function Go()
{
if (stage)
{
init();
}
else
{
addEventListener(Event.ADDED_TO_STAGE, init);
}
}
private function init(e:Event = null):void
{
if (e) removeEventListener(Event.ADDED_TO_STAGE, init);
trace(stage.width);
addEventListener(Event.ENTER_FRAME, loop);
}
public function loop(e:Event, Test):void
{
Test.moveme.scaleX++
Test.moveme.x++
}
}
}
Ошибка, которую я получаю с этим, - ArgumentError: Error # 1063: Несоответствие количества аргументов в Go / loop (). Ожидал 2, получил 1.
или если я удалю тест в цикле общедоступной функции (e: Event, Test): void, я получаю ту же ошибку, что и раньше. Я уже много чего пробовал, я могу заставить его отслеживать ширину сцены, я просто не могу контролировать экземпляры.
Любая помощь будет оценена по достоинству!