![]() |
Как использовать getTimer()?
Есть класс Ball, с помощью которого можно создать шарик.
Код AS3:
Код AS3:
|
Проблема в следующих строчках
Код AS3:
Код AS3:
во-вторых, переменная Код AS3:
Код AS3:
я бы посоветовал вместо getTimer использовать TimerEvent, который бы срабатывал каждые 3000 мс Код AS3:
при этом, функцию Код AS3:
То есть у каждого шарика свой обработчик EnterFrame Если делать без переделки функции move, то придется в вашей Код AS3:
|
Цитата:
Цитата:
Цитата:
|
А зачем использовать именно getTimer()?
Если именно с getTimer(), то надо заранее где-то создать переменную, а не в начале функции через Код AS3:
Например первый раз записываем в конструкторе Main() а все последующие разы после выполнения условия по пройденному времени Код AS3:
|
Ну нужно так по заданию.
Создала переменную класса майн Код AS3:
|
Нет, не надо первый шарик в конструкторе
У вас переменная объявлена сейчас вне конструктора надо оставить только объявление Код AS3:
Код AS3:
Код AS3:
|
Если поправить move в классе ball, то шарики двигаются все, но двигаются по диагонали т.к. не единожды выбирается случайное направление движения. Да кто му же получается 2 слушателя события ENTER_FRAME, в раздных классах, а как мне объясняли такое не желательно. Может всетаки как-то с помощью цикла обойтись и перебрать все шарики в массиве?
Еще возник вопрос. сейчас первый шарик создается через 3 секунды после начала работы программы, а можно как-то его сразу создать, а потом чтоб гетТаймер начал работать? |
Потому что у Вас ответственности не распределены между функциями.
addBall у Вас не шарик добавляет, как заявлено в названии, а проверяет прошедшее время И добавляет шарик. А onLoop делает addBall на каждый кадр, хотя в Вашем же задании сказано — раз в три секунды. Вы можете сказать — "Да какая разница, как я назвала функции". Язык потому и "язык", что через слова выражается логика. Поместите проверку времени в onLoop. На каждый кадр Вы проверяете, сколько прошло времени — логично? Если прошло 3 секунды, вызываете addBall — логично? В addBall просто добавляете новый шарик. А чтобы первый шарик появлялся сразу, вызываете addBall в конструкторе, и потом начинаете слушать ентерфрейм. Но сам по себе способ использовать getTimer конечно неудачный. В таком приложении логика требует просто задать интервал, через который совершается действие. А getTimer нужен для другого, для измерения прошедшего времени. |
если с getTimer(), то можно так:
Код AS3:
Я бы для этой функции создал таймер c заданным интервалом Код AS3:
|
Всем спасибо за помощь.
|
| Часовой пояс GMT +4, время: 17:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.