Показать сообщение отдельно
Старый 11.08.2012, 18:09
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 1  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
По умолчанию While выполнение до условия с парочей "под-условий"

Вообще, моя задача стоит в том, чтобы сделать появление кнопок меню поочередно. В классе меню, где идет создание классов кнопок, стоит цикл. Цикл выполняется до тех пор, пока не будет создано столько кнопок, сколько было указано при создании меню (у меня 7).

Суть в том, что я это сделал в цикле. Вот цикл, функция getMotionFinished в кнопке возвращает переменную motionFinishedVar, которая изменяется на true лишь после окончания движения Tween-а внутри кнопки.
То есть цикл while выполняется все эти 7 или сколько секунд пока все твины 7-и кнопок не возвратят в своих функциях getMotionFinished true (там return той переменной стоит).

Может я как-то не так это понимаю? После компила все зависает и сообщает, что цикл сильно долго шел и его пришлось отключить. На выходе - одна кнопка, первая, которая под условием висит в else.

Код AS3:
private function drawMenu(e:Event)
		{
			//Цикл рисования меню
			while (i<(buttonsNumber-1))
			{
 
				if (i > 0)
				{
					if (arrayOfButtons[i - 1][0].getMotionFinished() == true)
					{
						arrayOfButtons[i] = new Array  ;
						arrayOfButtons[i][0] = new MyButton("Кнопочка " + i);
						arrayOfButtons[i][0].y +=  arrayOfButtons[i - 1][0].y + arrayOfButtons[i - 1][0].height;
						addChild(arrayOfButtons[i][0]);
						i++
					}
 
 
				}
				else
				{
					arrayOfButtons[i] = new Array  ;
					arrayOfButtons[i][0] = new MyButton("Кнопочка " + i);
					addChild(arrayOfButtons[i][0]);
					i++;
				}
 
			}
		}
По дефолту i, конечно же, 0.
Просто при вызове 7 кнопок (почему я в условии while-а пишу i-1) в массив arrayOfButtons добавляется от 0 до 6-и элементов

Вопрос у меня такой, почему цикл не хочет так работать?

Добавлено через 10 минут
Минутку... А можно как-нибудь listener сделать на getMotionFinished, когда станет true просто делать i++ и вызывать функцию drawButton к примеру?
Как сделать слушатель на свой параметр?