Мне интересно, есть ли простой способ заставить всех детей одновременно что-то делать. В частности, я хочу, чтобы все на моей сцене дрожало, как землетрясение. Трудно выделить все на сцене и добавить правильный код, потому что в данный момент я не всегда знаю количество детей на сцене.Сделать все дети чем-то ...?
Кроме того, я не уверен, что это имеет значение, но иногда, когда я добавляю что-то, я не ухожу, чтобы добавить его на сцену ... Как на несколько кнопок я буду сделать this.addChild(mybutton)
. Я не знаю, есть ли способ получить доступ ко всему, что было addChilded, даже если я, возможно, не добавил их прямо на сцену? Я уверен, что numChildren
возвращает значение числа объектов на экране, но я могу ошибаться ...
я думал сделать что-то вроде
Внутри моей петли
if (numChildren >= 10 && nukeShakeTimer.currentCount == 0)
{
nukeShakeTimer.start();
}
if (nukeShakeTimer.currentCount > 0)
{
NukeShake();
}
NukeShake
public function NukeShake():void
{
numberChildren = numChildren;
trace(numberChildren);
while (numberChildren > 0)
{
var tempObject:Object = getChildAt(numberChildren)
if (nukeShakeTimer.currentCount % 2 == 1)
{
tempObject.x += 10;
}
if (nukeShakeTimer.currentCount % 2 == 0)
{
tempObject.x -= 10;
}
numberChildren -= 1;
}
if (nukeShakeTimer.currentCount > 30)
{
nukeShakeTimer.reset();
}
}
Когда я пытаюсь Тхи s, однако, я получаю ошибку времени выполнения для строки var tempObject:Object = getChildAt(numberChildren)
, и ошибка читается RangeError: Error # 2006: предоставленный индекс выходит за пределы.
Также я чувствую, что это возможно сделать эту операцию намного быстрее, не используя цикл while, но, возможно, нет. Помогите пожалуйста, спасибо!
попробуйте это: 'var tempObject: Object = getChildAt (numberChildren-1)' – Cherniv
Ах да, как я этого не понял? -0- – spaderdabomb
Первый комментарий правильный, следует отметить, что причина в том, что список отображения индекс начинается с 0 и заканчивается на numChildren-1. – prototypical