ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Аватара пользователя
Ugly
Сообщения: 16
Зарегистрирован: 13 янв 2013, 11:03

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение Ugly »

Ну, этого я и хотел избежать. Но раз говорите, что это нормально - столько слушателей, то хорошо, буду делать так. Надеюсь, компы не будут взрываться от перенапряжения)
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение Alazaur »

Нет ну если к примеру over9000 кнопок лежат в одном клипе. То вы можете повесить один слушатель на этот клип. А всем этим кнопкам выставить mouseChildren в false
В этом случае в обработчике currentTarget будет указывать на клип-контейнер, а target на кнопку по которой кликнули. Но в этом случае этот обработчик будет так же срабатывать если вы например кликните между кнопками. Можно конечно попробовать по-плясать с выставлением mouseEnabled в false. Сам не пробовал, не было у меня over9000 кнопок в играх :D
Аватара пользователя
Ugly
Сообщения: 16
Зарегистрирован: 13 янв 2013, 11:03

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение Ugly »

кнопкам выставить mouseChildren в false
В этом случае в обработчике currentTarget будет указывать на клип-контейнер, а target на кнопку по которой кликнули.
А вот на этом спасибо, помогли. Самое то что нужно)
Аватара пользователя
Ugly
Сообщения: 16
Зарегистрирован: 13 янв 2013, 11:03

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение Ugly »

Я вот кстати еще подумал, что если вдруг между кнопками есть расстояние, и все эти кнопки являются экземплярами одного класса (что, по-моему, должно быть априори при таких больших количествах этих кнопок), то можно просто ставить слушателя на родителя этого класса, а в обработчике перед выполнением проверять, является ли таргет экземпляром класса. :geek:
Но это чисто теоретически, мне это пока не пригодилось. Но вроде так и есть)
ЗЫ: да, я уже подумываю над тем, чтобы взять себе никнейм "Кэп".
gpv123
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение gpv123 »

Ugly, просто всем кнопкам ставьте mouseChildren = false, а внутри обработчика проверяйте: если target == currentTarget, то нажали между кнопок
AlexQW
Сообщения: 16
Зарегистрирован: 17 апр 2012, 21:48

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение AlexQW »

Подскажите пожалуйста.
Имею на экране несколько объектов (например k1, k2, k3, k4.....) можно ли как нибудь обращаться к ним подобным образом:

for (var i:uint = 1; i<num; i++) {
k.x+=20;
}

без создания массива. Или массив обязательно?
В AS2 как то можно было часть имени в квадратных скобках писать.... если не ошибаюсь)
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение Alazaur »

Код: Выделить всё

getChildByName("k"+i).x += 20;
ну или

Код: Выделить всё

this["k"+i].x += 20;
AlexQW
Сообщения: 16
Зарегистрирован: 17 апр 2012, 21:48

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение AlexQW »

Спасибо)
Аватара пользователя
Ugly
Сообщения: 16
Зарегистрирован: 13 янв 2013, 11:03

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение Ugly »

Можно ли как-то проверить, выведен ли объект на сцену? Или что-нибудь похожее.
Пробовал таким способом:

Код: Выделить всё

windowInfo.addChild(needMoreGold);All.AppendLog("TRACE: " + windowInfo.contains(needMoreGold));
но тогда всё зависает на этой строчке, хотя судя по документации должно вывести true, либо false если бы не было первой строки. Если убираю windowInfo.contains(needMoreGold) - то работает.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение Александр »

Ugly
windowInfo и needMoreGold - это что?

Пример со спрайтами работает

Код: Выделить всё

import flash.display.Sprite; var sprite1:Sprite = new Sprite();var sprite2:Sprite = new Sprite();var sprite3:Sprite = new Sprite();var sprite4:Sprite = new Sprite(); sprite1.addChild(sprite2);sprite2.addChild(sprite3); trace(sprite1.contains(sprite1)); // truetrace(sprite1.contains(sprite2)); // truetrace(sprite1.contains(sprite3)); // truetrace(sprite1.contains(sprite4)); // false
Ответить