Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.12.2009, 12:06
veles2008 вне форума Посмотреть профиль Отправить личное сообщение для veles2008 Найти все сообщения от veles2008
  № 1  
Ответить с цитированием
veles2008
 
Аватар для veles2008

Регистрация: Sep 2008
Сообщений: 158
По умолчанию как задать количество повторений движения

Приветствую!

На сцене есть объект, кнопка (двигаться), кнопка (вперёд) поле ввода (сколько раз повторить движение) и кнопка пуск которая запускает движение объекта.

Нужно нажать "двигаться" потом "вперёд", потом указать "сколько раз повторить движение" и кнопку пуск после чего объект начинает движение которое мы задали.

Как сделать повторение?

Старый 09.12.2009, 17:11
fessor вне форума Посмотреть профиль Отправить личное сообщение для fessor Найти все сообщения от fessor
  № 2  
Ответить с цитированием
fessor

Регистрация: Oct 2009
Сообщений: 101
сначала несколько вопросов
- одно движение вперед это будет смещение объекта в нужные координаты?
- счетчик движений уже сделан?
- про onEnterFrame(); уже читал?

Старый 09.12.2009, 18:15
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 3  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
У автора пошаговое движение, не плавное, onEnterFrame тут не годится.
Детали все мне тоже не ясны, но должно быть что-то вроде этого:
Код AS1/AS2:
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.
Старый 09.12.2009, 22:51
veles2008 вне форума Посмотреть профиль Отправить личное сообщение для veles2008 Найти все сообщения от veles2008
  № 4  
Ответить с цитированием
veles2008
 
Аватар для veles2008

Регистрация: Sep 2008
Сообщений: 158
что то ничего не получается

Добавлено через 17 минут
попробую объяснить детали.

Нужно создать программиркуемого исполнителя. Который бы исполнял линейные, программы, программы с условием и циклические программы. Первые два уже сделаны. Остался цикл.
Так вот фрагмент программы с циклом: есть кнопки вперёд, повторить, сколько раз повторить, пуск.
При нажимании на эти кнопки можно организовывать следующие комбинации:
1.
Повторить
вперёд
3 раза
объект 3 раза передвигается вперёд
2.
Повторить
вперёд
вперёд
1 раз
объект 2 раза передвигается вперёд
3.
вперёд
повторить
вперёд
2 раза
вперёд
объект передвигается вперёд 4 раза

Старый 09.12.2009, 23:32
NoCD вне форума Посмотреть профиль Отправить личное сообщение для NoCD Найти все сообщения от NoCD
  № 5  
Ответить с цитированием
NoCD
 
Аватар для NoCD

Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
Вводите в массив свои команды, а исполнитель будет читать инструкции из массива.

Старый 09.12.2009, 23:42
veles2008 вне форума Посмотреть профиль Отправить личное сообщение для veles2008 Найти все сообщения от veles2008
  № 6  
Ответить с цитированием
veles2008
 
Аватар для veles2008

Регистрация: Sep 2008
Сообщений: 158
Так это понятно, а как цикл в массив "всунуть" и что б он когда нужно повторился?
может кто исходник глянет?
Вложения
Тип файла: rar move.rar (14.3 Кб, 38 просмотров)

Старый 09.12.2009, 23:58
NoCD вне форума Посмотреть профиль Отправить личное сообщение для NoCD Найти все сообщения от NoCD
  № 7  
Ответить с цитированием
NoCD
 
Аватар для NoCD

Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
Цитата:
может кто исходник глянет?
А чего на swf глядеть, вопрос и так понятен.

Цитата:
Так это понятно, а как цикл в массив "всунуть" и что б он когда нужно повторился?
я бы извратился бы таким образом:

Код AS1/AS2:
var command_Array = ["move:return2;move:return1","move:up2,return1",и т.д.]
соответственно команды можно будет выдирать с помощью substring.
move - вперед;
return2 - повторить действие два раза;
; - окончание первого действия
и т.д.

Вызывайте нужную функцию для решения нужной задачи.


Последний раз редактировалось NoCD; 10.12.2009 в 00:02.
Старый 10.12.2009, 00:08
veles2008 вне форума Посмотреть профиль Отправить личное сообщение для veles2008 Найти все сообщения от veles2008
  № 8  
Ответить с цитированием
veles2008
 
Аватар для veles2008

Регистрация: Sep 2008
Сообщений: 158
а если я задам повторить 100 раз, то 100 функций создавать нужно?

Старый 10.12.2009, 00:37
NoCD вне форума Посмотреть профиль Отправить личное сообщение для NoCD Найти все сообщения от NoCD
  № 9  
Ответить с цитированием
NoCD
 
Аватар для NoCD

Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
Цитата:
а если я задам повторить 100 раз, то 100 функций создавать нужно?
Мдяяя.

функции являются действия, которыми будет пользоваться исполнитель. Функции создаются один раз, а вызываются сколько угодно раз. Создали вы например функцию для какого то действия и все, теперь только вызывайте её столько, сколько нужно раз. И не надо ничего сто раз создавать. Например вы хотите повторить одно и то же действие сто раз, то просто вызовите функцию, которую вы хотите исполнить и там она выполнит действия сто раз ориентируясь по командам, которые вы возьмете из массива

Старый 10.12.2009, 09:58
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 10  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Спешл фор Ю

Мега Трэш пример

В боксе выбираете "по прямой" > вперед/назад > число повторений .

Можно ещё выбрать "произвольное движение", это бонусом..бесплатно

И вот, кстати, похожая тема была
http://flasher.ru/forum/showthread.php?t=133518
Вложения
Тип файла: rar Circle_count.rar (144.9 Кб, 40 просмотров)


Последний раз редактировалось KiL33; 10.12.2009 в 10:03.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:25.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.