![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Сейчас я делаю так:
Сначала создаю отдельный пустой мувик, который заполняю звёздами. addChild(particle1); for (var p:uint = 0; p < 50; p++) { var particle = new Particle(); particle1.addChild(particle); var px:int = 1 + (Math.random() * 640) var py:int = 1 + (Math.random() * 480) particle.x = px; particle.y = py; } А вот дальше у меня затык. Я хочу, чтобы звёзды, которые вышли за предел экрана слева - удалялись, а справа появлялись новые. Начал делать так: if (particle1.x < 0) { for (var pp:uint = 0; pp < particle1.numChildren; pp++) { if (particle1.getChildAt(pp).x < 0) { particle1.removeChild(pp); } } } Подскажите, как правильно удалить чаилда? |
|
|||||
|
Ошибка выдается, потому что pp при удалении становится больше numChildren.
Лучше не удаляйте, а меняйте координаты. Ну или идите в обратном направлении.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Отличная мысль!!
Попробовал так. trace почему-то не срабатывает ): |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 150
|
Цитата:
А вообще код перемещения снежинок проще вынести в класс снежинок, в функцию update к примеру, проще будет контролировать. public class DynamicParticle extends Particle { public function setRandomPos():void { this.x = 1 + (Math.random() * 640); this.y = 1 + (Math.random() * 480); } public function update():void { this.x -= 1; if (this.x < 0) this.x = 640; } } public class ParticleContainer extends Sprite { private var _particles:Vector.<Sprite> = new Vector.<Sprite>(); public function createSky():void { for (var p:uint = 0; p < 50; p++) { var particle = new DynamicParticle(); particle.setRandomPos(); addChild(particle); _particles.push(particle); } } public function update():void { for (var pp:uint = 0; pp < _particles.length; pp++) { _particles[pp].update(); } } } Последний раз редактировалось Stitch512; 10.01.2012 в 16:44. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Спасибо. Буду пробовать.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|