Хороший друг рекомендовал мне этот сайт, он выглядит действительно полезным! Я немного постыдный новичок на ActionScript, и после 3 дней обучения и советов я попал в кирпичную стену.
Мне удалось подключить датчик к arduino, который разговаривает со вспышкой, используя нечто, называемое AS3glue. это работает, когда я устанавливаю трассу («лист») для контура, который датчик читает 0, я получаю распечатку слова «лист». однако я хочу, чтобы при выполнении этого условия программа отображала изображение на экране, а не просто что-то отслеживала.
Я пытаюсь заставить программу генерировать объект библиотеки с именем «Враг» на экране в произвольной позиции каждый раз, когда выполняются условия. Это называется врагом, потому что я следовал учебному пособию по игре ... на самом деле это рисунок листа.
Вот фрагмент кода, который вызывает у меня проблемы:
вар армии: массив; вар враг: враг;
function AvoiderGame () {Army =
новый массив (); var newEnemy = new
Враг (100, 100); army.push (
newEnemy); addChild (newEnemy);
}
функция timerEvent (событие: событие): пусто
{
if (a.getAnalogData (0) == 0 &&
a.getAnalogData (0)! =
this.lastposition) {
trace("leaf");
var randomX:Number = (Math.random() * 200) + 100;
var randomY:Number = (Math.random() * 150) + 50;
var newEnemy = new Enemy( randomX, randomY);
army.push( newEnemy );
addChild( newEnemy );
} else if (a.getAnalogData(0) == 0) { //don't trace anything } >else {
// ничего не отслеживать
this.lastposition =
a.getAnalogData (0); // потом устанавливаем
положение, чтобы быть новым
последняя позиция и повтор.
}
Я импортировал "импорт
flash.display.MovieClip; "
и код для класса Enemy выглядит
как это:
пакет {импорт
flash.display.MovieClip; общественный класс
Враг расширяет мувиклип
функция Enemy (startX: номер,
startY: Number) {x = startX;
y = startY; }
}}
Вот моя ошибка. Я пробовал поискать в Google, похоже, это довольно общая ошибка:
TypeError: Ошибка № 1009: невозможно получить доступ
свойство или метод нулевого объекта
ссылка. в
as3glue_program_fla :: MainTimeline / TimerEvent ()
в
flash.utils :: Timer / _timerDispatch ()
на flash.utils :: Таймер / тик ()
Я убедился, что объект "Враг" экспортирован для AS3.
Я собираюсь сделать что-то подобное, когда это запрограммировано в AS2:
leafCounter = 0; // установить счетчик на
0 counter.swapDepths (1000); // помещает
счетчик сверху в значительной степени
ничего, если вы не делаете больше, чем
1000 листьев! counter.textbox.text = 0;
// показывает "0" в текстовом поле в
видеоклип "counter"
this.onMouseDown = function () {
// срабатывает при нажатии мыши
this.attachMovie ( "лист", "лист" + leafCounter, leafCounter, {_ х: Math.random () * Stage.width, _y: Math.random () * Stage.height, _rotation: Math.random () * 360 });
// добавляет лист на сцену с
случайное положение и случайное вращение
leafCounter ++; // добавляет 1 к листу
counter counter.textbox.text =
leafCounter; // показывает это число в
текстовое поле}
Я уверен, что это должна быть простая ошибка, я могу заставить логику работать, когда она просто отслеживает что-то на экране, но я не могу заставить ее генерировать "врага"
Любая помощь или советы будут действительно полезны! Я знаю, что это немного нелепая работа по изменению существующего кода.