Страница 53 из 56

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

Добавлено: 14 фев 2013, 22:35
Ugly
Ну, этого я и хотел избежать. Но раз говорите, что это нормально - столько слушателей, то хорошо, буду делать так. Надеюсь, компы не будут взрываться от перенапряжения)

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

Добавлено: 14 фев 2013, 22:45
Alazaur
Нет ну если к примеру over9000 кнопок лежат в одном клипе. То вы можете повесить один слушатель на этот клип. А всем этим кнопкам выставить mouseChildren в false
В этом случае в обработчике currentTarget будет указывать на клип-контейнер, а target на кнопку по которой кликнули. Но в этом случае этот обработчик будет так же срабатывать если вы например кликните между кнопками. Можно конечно попробовать по-плясать с выставлением mouseEnabled в false. Сам не пробовал, не было у меня over9000 кнопок в играх :D

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

Добавлено: 15 фев 2013, 12:11
Ugly
кнопкам выставить mouseChildren в false
В этом случае в обработчике currentTarget будет указывать на клип-контейнер, а target на кнопку по которой кликнули.
А вот на этом спасибо, помогли. Самое то что нужно)

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

Добавлено: 16 фев 2013, 08:55
Ugly
Я вот кстати еще подумал, что если вдруг между кнопками есть расстояние, и все эти кнопки являются экземплярами одного класса (что, по-моему, должно быть априори при таких больших количествах этих кнопок), то можно просто ставить слушателя на родителя этого класса, а в обработчике перед выполнением проверять, является ли таргет экземпляром класса. :geek:
Но это чисто теоретически, мне это пока не пригодилось. Но вроде так и есть)
ЗЫ: да, я уже подумываю над тем, чтобы взять себе никнейм "Кэп".

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

Добавлено: 16 фев 2013, 13:08
gpv123
Ugly, просто всем кнопкам ставьте mouseChildren = false, а внутри обработчика проверяйте: если target == currentTarget, то нажали между кнопок

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

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

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

без создания массива. Или массив обязательно?
В AS2 как то можно было часть имени в квадратных скобках писать.... если не ошибаюсь)

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

Добавлено: 01 апр 2013, 16:52
Alazaur

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

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

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

this["k"+i].x += 20;

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

Добавлено: 01 апр 2013, 16:54
AlexQW
Спасибо)

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

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

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

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

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

Добавлено: 09 апр 2013, 22:03
Александр
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