Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   addChild в наследуемом классе. (http://www.flasher.ru/forum/showthread.php?t=179683)

olexandr 19.05.2012 22:18

не, ну у вас реально шедевр для того ресурса.
вообще, типа такого вам нужно (архитектура тоже вызывает вопросы):

Главный класс я упростил, незачем главному классу запускать какой-то там таймер у ребенка.
Соответственно, в главном ничего не осталось. Может лучше код из HostileControl перенести в главный класс?
Код AS3:

package {
        import flash.display.Sprite;
 
        public class LifeArena extends Sprite {
 
                private var _timer:HostileControl;
 
                public function LifeArena() {
                        _timer = new HostileControl();
                        addChild(_timer);
                }
 
        }
 
}

Таймер на 10 секунд создается таким образом, а не так, как вы придумали.
Цикл на 10 объектов "for (var i = 0; i < 10; i++)", а не "for (var i = 0; i <= 10; i++)"
new Hostile() нужно создавать в каждой итерации цикла, в вашем примере единожды созданный объект 11 раз добавлялся на сцену
Код AS3:

package {
        import flash.display.Sprite;
        import flash.events.TimerEvent;
        import flash.utils.Timer;
 
        public class HostileControl extends Sprite {
 
                var _timer:Timer;
 
                public function HostileControl() {
                        _timer = new Timer(10000, 1);
                        _timer.addEventListener(TimerEvent.TIMER, timerHandler);
                }
 
                private function timerHandler(e:TimerEvent):void {
                        createEnemy();
                }
 
                private function createEnemy():void {
                        var _enemy:Hostile;
                        for (var i = 0; i < 10; i++) {
                                _enemy = new Hostile();
                                _enemy.x = -100;
                                _enemy.y = -100;
                                addChild(_enemy);
                        }
                }
 
        }
 
}


Mkey 20.05.2012 00:25

Нет слов, гораздо приятнее на код смотреть:)
еще _timer.start(); добавил и заработало.
Просто я читал про таймеры, что они бывают работают не точно, поэтому и захерачил так:)
Еще раз спасибо, правда, узнал очень многое для себя.

olexandr 20.05.2012 00:38

о, блин. еще когда писал думал, хоть бы не забыть _timer.start();
я эту строку и у себя всегда забываю )
удачного обучения )


Часовой пояс GMT +4, время: 13:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.