ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
Ну, этого я и хотел избежать. Но раз говорите, что это нормально - столько слушателей, то хорошо, буду делать так. Надеюсь, компы не будут взрываться от перенапряжения)
Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
Нет ну если к примеру over9000 кнопок лежат в одном клипе. То вы можете повесить один слушатель на этот клип. А всем этим кнопкам выставить mouseChildren в false
В этом случае в обработчике currentTarget будет указывать на клип-контейнер, а target на кнопку по которой кликнули. Но в этом случае этот обработчик будет так же срабатывать если вы например кликните между кнопками. Можно конечно попробовать по-плясать с выставлением mouseEnabled в false. Сам не пробовал, не было у меня over9000 кнопок в играх
В этом случае в обработчике currentTarget будет указывать на клип-контейнер, а target на кнопку по которой кликнули. Но в этом случае этот обработчик будет так же срабатывать если вы например кликните между кнопками. Можно конечно попробовать по-плясать с выставлением mouseEnabled в false. Сам не пробовал, не было у меня over9000 кнопок в играх
Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
А вот на этом спасибо, помогли. Самое то что нужно)кнопкам выставить mouseChildren в false
В этом случае в обработчике currentTarget будет указывать на клип-контейнер, а target на кнопку по которой кликнули.
Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
Я вот кстати еще подумал, что если вдруг между кнопками есть расстояние, и все эти кнопки являются экземплярами одного класса (что, по-моему, должно быть априори при таких больших количествах этих кнопок), то можно просто ставить слушателя на родителя этого класса, а в обработчике перед выполнением проверять, является ли таргет экземпляром класса.
Но это чисто теоретически, мне это пока не пригодилось. Но вроде так и есть)
ЗЫ: да, я уже подумываю над тем, чтобы взять себе никнейм "Кэп".
Но это чисто теоретически, мне это пока не пригодилось. Но вроде так и есть)
ЗЫ: да, я уже подумываю над тем, чтобы взять себе никнейм "Кэп".
Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
Ugly, просто всем кнопкам ставьте mouseChildren = false, а внутри обработчика проверяйте: если target == currentTarget, то нажали между кнопок
Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
Подскажите пожалуйста.
Имею на экране несколько объектов (например k1, k2, k3, k4.....) можно ли как нибудь обращаться к ним подобным образом:
for (var i:uint = 1; i<num; i++) {
k.x+=20;
}
без создания массива. Или массив обязательно?
В AS2 как то можно было часть имени в квадратных скобках писать.... если не ошибаюсь)
Имею на экране несколько объектов (например k1, k2, k3, k4.....) можно ли как нибудь обращаться к ним подобным образом:
for (var i:uint = 1; i<num; i++) {
k.x+=20;
}
без создания массива. Или массив обязательно?
В AS2 как то можно было часть имени в квадратных скобках писать.... если не ошибаюсь)
Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
Код: Выделить всё
getChildByName("k"+i).x += 20;
Код: Выделить всё
this["k"+i].x += 20;
Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
Можно ли как-то проверить, выведен ли объект на сцену? Или что-нибудь похожее.
Пробовал таким способом:
но тогда всё зависает на этой строчке, хотя судя по документации должно вывести true, либо false если бы не было первой строки. Если убираю windowInfo.contains(needMoreGold) - то работает.
Пробовал таким способом:
Код: Выделить всё
windowInfo.addChild(needMoreGold);All.AppendLog("TRACE: " + windowInfo.contains(needMoreGold));
Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)
Ugly
windowInfo и needMoreGold - это что?
Пример со спрайтами работает
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