|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
загрузка и удаление дополнительного класса
Всем привет, помогите, плз, разобраться.
Необходимо, по событиям, загружать дополнительный класс, удалять его, затем опять загружать и т.д. главный класс: package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { private var sprite:Sprite; private var anyClass; private var clo:Clo=new Clo; private var ad:Ad=new Ad; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init (evt:Event=null) { removeEventListener(Event.ADDED_TO_STAGE, init); stage.addChild(clo); stage.addChild(ad); clo.x=stage.stageWidth/2-clo.width; clo.y=stage.stageHeight/2; ad.x=stage.stageWidth/2+ad.width; ad.y=stage.stageHeight/2; clo.addEventListener(MouseEvent.CLICK, cloClick); ad.addEventListener(MouseEvent.CLICK, adClick); } private function cloClick(evt:MouseEvent):void { trace("cloClick") anyClass=null;//здесь нужно удалять дополнительный класс } private function adClick(evt:MouseEvent):void { trace("adClick") anyClass=new AnyClass(stage); } } } какую команду нужно написать для события cloClick, так что бы дополнительный класс удалился и перестал выполнять onEnFrame? |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
в AnyClass добавьте метод
|
|
|||||
Поменял код, но, наверное, не смог передать ссылку. Ожидаемого результата нет, гляньте, исправленный код:
package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { private var sprite:Sprite; private var anyClass; private var clo:Clo=new Clo; private var ad:Ad=new Ad; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init (evt:Event=null) { removeEventListener(Event.ADDED_TO_STAGE, init); stage.addChild(clo); stage.addChild(ad); clo.x=stage.stageWidth/2-clo.width; clo.y=stage.stageHeight/2; ad.x=stage.stageWidth/2+ad.width; ad.y=stage.stageHeight/2; clo.addEventListener(MouseEvent.CLICK, cloClick); ad.addEventListener(MouseEvent.CLICK, adClick); } private function cloClick(evt:MouseEvent):void { trace("cloClick") anyClass.destruct(); anyClass = null; } private function adClick(evt:MouseEvent):void { trace("adClick") anyClass=new AnyClass(stage); } } } package { import flash.display.*; import flash.events.Event; public class AnyClass extends Sprite { public function AnyClass(stage:Stage) { trace("AnyClass загрузился") stage.addEventListener(Event.ENTER_FRAME, onEnFrame) } private function onEnFrame(evt:Event):void { trace("_____") } public function destruct():void { stage.removeEventListener(Event.ENTER_FRAME, onEnFrame); parent.removeChild(this); } } } |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Вы бы почитали хотя бы чего нибудь, методом тыка будете тыкать долго.
|
|
|||||
Спасибо за совет, но последний ваш код, совсем не помог. Если я правильно понял, мы добавили эту строчку:
|
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
а, да.
public class AnyClass extends Sprite { private var stg:Stage; public function AnyClass(stg:Stage) { this.stg = stg; trace("AnyClass загрузился") stg.addEventListener(Event.ENTER_FRAME, onEnFrame) } //// public function destruct():void { stg.removeEventListener(Event.ENTER_FRAME, onEnFrame); parent.removeChild(this); } |
Часовой пояс GMT +4, время: 16:46. |
|
« Предыдущая тема | Следующая тема » |
Теги |
добавление , класс , события , удаление |
Опции темы | |
Опции просмотра | |
|
|