• Вопрос по поводу removeChild и removeEventListener

Страница номер 1

    У меня четыре класса в отдельных файлах, в главном классе создаётся экземпляр класса Hero, и по таймеру создаются экземпляры класса Enemy, а так же по клику создаются экземпляры класса Bullet. Внутри этих классов происходит отрисовка, а так же при условии выхода за границы видимой области - удаление экземпляров и слушателей.Вопрос: правильно ли я делаю? Или нужно удалять экземпляр создаваемый в главном классе?Вот листинг файлов:======================================================package{import flash.display.Sprite-import flash.events.Event-import flash.events.MouseEvent-import flash.events.TimerEvent-import flash.sampler.NewObjectSample-import flash.ui.Mouse-import flash.utils.Timer-/*** ...* @author Wlady*/public class Main extends Sprite{public var ship:Hero = new Hero()-public var mainTimer:Timer = new Timer(3000)-public function Main():void{if (stage) init()-else addEventListener(Event.ADDED_TO_STAGE, init)-}private function init(e:Event = null):void{removeEventListener(Event.ADDED_TO_STAGE, init)-// entry pointMouse.hide()-addChild(ship)-ship.addEventListener(MouseEvent.CLICK, fireHero)-stage.addEventListener(MouseEvent.MOUSE_MOVE, moveHero)-mainTimer.addEventListener(TimerEvent.TIMER, counter)-mainTimer.start()-}private function moveHero(e:MouseEvent):void{ship.x = mouseX-ship.y = mouseY-}private function counter(e:TimerEvent):void{var enemy:Enemy = new Enemy()-addChild(enemy)-}private function fireHero(e:MouseEvent):void{var bullet:Bullet = new Bullet()-addChild(bullet)-}}}==============================================package{import flash.display.Sprite-import flash.events.Event-import flash.events.MouseEvent-/*** ...* @author Wlady*/public class Hero extends Sprite{private var heroShip:Sprite = new Sprite()-public function Hero(){drawHero()-}private function drawHero():void{heroShip.graphics.beginFill(0x0000ff)-heroShip.graphics.lineStyle(1, 0x0000ff, 1)-heroShip.graphics.moveTo(0, -10)-heroShip.graphics.lineTo(10, 10)-heroShip.graphics.lineTo(10, 0)-heroShip.graphics.lineTo(15, 15)-heroShip.graphics.lineTo(15, 30)-heroShip.graphics.lineTo(20, 30)-heroShip.graphics.lineTo(20, 20)-heroShip.graphics.lineTo(25, 35)-heroShip.graphics.lineTo(20, 50)-heroShip.graphics.lineTo(15, 50)-heroShip.graphics.lineTo(20, 60)-heroShip.graphics.lineTo(5, 60)-heroShip.graphics.lineTo(10, 50)-heroShip.graphics.lineTo(5, 55)-heroShip.graphics.lineTo(-5, 55)-heroShip.graphics.lineTo(-10, 50)-heroShip.graphics.lineTo(-5, 60)-heroShip.graphics.lineTo(-20, 60)-heroShip.graphics.lineTo(-15, 50)-heroShip.graphics.lineTo(-20, 50)-heroShip.graphics.lineTo(-25, 35)-heroShip.graphics.lineTo(-20, 20)-heroShip.graphics.lineTo(-20, 30)-heroShip.graphics.lineTo(-15, 30)-heroShip.graphics.lineTo(-15, 15)-heroShip.graphics.lineTo(-10, 0)-heroShip.graphics.lineTo(-10, 10)-heroShip.graphics.lineTo(0, -10)-heroShip.graphics.endFill()-addChild(heroShip)-}}}==============================================
    Владимир 3 мая 2012 в 15:46

Страница номер 1

Переход по страницам