![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 158
|
Приветствую!
На сцене есть объект, кнопка (двигаться), кнопка (вперёд) поле ввода (сколько раз повторить движение) и кнопка пуск которая запускает движение объекта. Нужно нажать "двигаться" потом "вперёд", потом указать "сколько раз повторить движение" и кнопку пуск после чего объект начинает движение которое мы задали. Как сделать повторение? |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 101
|
сначала несколько вопросов
- одно движение вперед это будет смещение объекта в нужные координаты? - счетчик движений уже сделан? - про onEnterFrame(); уже читал? |
|
|||||
|
Модрон-ветеринар
|
У автора пошаговое движение, не плавное, onEnterFrame тут не годится.
Детали все мне тоже не ясны, но должно быть что-то вроде этого: var timeStep:Number = 1000; //1 сек. var count:Number = 0; //счетчик шагов var stepQuantity:Number = 0; //количество шагов var moveStarted:Boolean = false ; //признак того, что движение стартовало start_btn.onRelease = function () { stepQuantity = Number(input_tf.text); //из текствого поля берется количество шагов moveId = setInterval(moveIt, timeStep); //запусается движение, выполняющееся периодически с интервалом timeStep } function moveIt () { var allowMove:Boolean = count <= stepQuantity && !isNaN(stepQuantity) && !moveStarted; //проверка того, что: // - счетчик не достиг конца // - в поле было введено именно число, т.е. Number(input_tf.text) не даст NaN // - движение уже не было начато if (allowMove) { moveStarted = true ; //само движение } else { clearInterval (moveId); count = 0; stepQuantity = 0; moveStarted = false ; } } Последний раз редактировалось mooncar; 09.12.2009 в 18:30. |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 158
|
что то ничего не получается
Добавлено через 17 минут попробую объяснить детали. Нужно создать программиркуемого исполнителя. Который бы исполнял линейные, программы, программы с условием и циклические программы. Первые два уже сделаны. Остался цикл. Так вот фрагмент программы с циклом: есть кнопки вперёд, повторить, сколько раз повторить, пуск. При нажимании на эти кнопки можно организовывать следующие комбинации: 1. Повторить вперёд 3 раза объект 3 раза передвигается вперёд 2. Повторить вперёд вперёд 1 раз объект 2 раза передвигается вперёд 3. вперёд повторить вперёд 2 раза вперёд объект передвигается вперёд 4 раза |
|
|||||
|
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
Вводите в массив свои команды, а исполнитель будет читать инструкции из массива.
|
|
|||||
|
Регистрация: Sep 2008
Сообщений: 158
|
Так это понятно, а как цикл в массив "всунуть" и что б он когда нужно повторился?
может кто исходник глянет? |
|
|||||
|
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
Цитата:
Цитата:
соответственно команды можно будет выдирать с помощью substring. move - вперед; return2 - повторить действие два раза; ; - окончание первого действия и т.д. Вызывайте нужную функцию для решения нужной задачи. Последний раз редактировалось NoCD; 10.12.2009 в 00:02. |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 158
|
а если я задам повторить 100 раз, то 100 функций создавать нужно?
|
|
|||||
|
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
Цитата:
функции являются действия, которыми будет пользоваться исполнитель. Функции создаются один раз, а вызываются сколько угодно раз. Создали вы например функцию для какого то действия и все, теперь только вызывайте её столько, сколько нужно раз. И не надо ничего сто раз создавать. Например вы хотите повторить одно и то же действие сто раз, то просто вызовите функцию, которую вы хотите исполнить и там она выполнит действия сто раз ориентируясь по командам, которые вы возьмете из массива |
|
|||||
|
Спешл фор Ю
Мега Трэш пример ![]() В боксе выбираете "по прямой" > вперед/назад > число повторений . Можно ещё выбрать "произвольное движение", это бонусом..бесплатно И вот, кстати, похожая тема была http://flasher.ru/forum/showthread.php?t=133518 Последний раз редактировалось KiL33; 10.12.2009 в 10:03. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:13. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|