|
|
|||||
Регистрация: Sep 2010
Сообщений: 42
|
Вопрос по слушателю ENTER_FRAME
Привет.
Хотел задать вопрос в нубской теме, но она закрыта, поэтому спрашиваю здесь. Начал читать книгу Foundation ActionScript 3.0 Animation: Making Things Move!. После третьей главы решил потренироваться. Хочу, чтобы выводилось вот что. При старте есть 2 шарика. Один постоянно двигается направо. При клике мышкой должен появляться еще шарик и лететь тоже направо. Движение одного реализовал через хендлер Потом сделал хендлер для обработки клика. private function onMouseClick(event:MouseEvent):void{ var tmp:Ball = new Ball(5, 0xFF0000); addChild(tmp); tmp.x = 50; tmp.y = 50; for(var i:int = 51; i < 500; i++){ tmp.x = i; } Соответственно, вопрос. Как сделать так, чтобы движение нового шарика отображалось? |
|
|||||
Судя по коду вы и не пытались начать двигать новый шарик. Изменение координат нового шарика должно происходить там же в onEnterFrame.
Это можно сделать заведя массив или вектор шариков и обновлять их в onEnterFrame, или регистрировать обработчик ENTER_FRAME не для контейнера шариков, а для каждого шарика. Пример второго способа |
|
|||||
Регистрация: Sep 2010
Сообщений: 42
|
Спасибо, попробовал этот вариант. Только при дебаге выдает такую ошибку:
TypeError: Error #1009: Cannot access a property or method of a null object reference. ссылаяь на строку При этом, если закрыть билдер, то программа вроде как работает и шарики по клику посылаются. |
|
|||||
Создайте массив, где будут храниться ваши шарики и в обработчике ENTER_FRAME изменяйте координаты каждого элемента (циклом for each). А при создании нового шарика добавляйте его в тот массив.
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
Регистрация: Sep 2010
Сообщений: 42
|
Спасибо, получилось
|
|
|||||
Цитата:
Но вариант с массивом или вектором (если нет ограничения, чтобы работала в fp9) пожалуй лучше. |
Часовой пояс GMT +4, время: 00:25. |
|
« Предыдущая тема | Следующая тема » |
|
|