|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
не срабатывает событие ADDED и REMOVED
пишу:
package { import flash.display.*; import flash.events.*; //import flash.events.MouseEvent; public class WebSite extends MovieClip { public function WebSite():void { if(stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(evt:Event = null):void { var sprite=new Sprite(); stage.addChild(sprite); sprite.addEventListener(Event.ADDED, addMoveObj); function addMoveObj(evt:Event):void { trace("added"); sprite.addEventListener(Event.ENTER_FRAME, added); trace(sprite); } sprite.addEventListener(Event.REMOVED, removeMoveObj); function removeMoveObj(evt:Event):void { trace("removed"); sprite.removeEventListener(Event.ENTER_FRAME, added); } function added(evt:Event):void { } } } } |
|
|||||
у меня очень часто не получается заставить что-то работать без вложенных функций, сейчас перепишу
Добавлено через 10 минут Цитата:
package { import flash.display.*; import flash.events.*; public class WebSite extends MovieClip { private var sprite=new Sprite(); public function WebSite():void { if(stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(evt:Event = null):void { stage.addChild(sprite); sprite.addEventListener(Event.ADDED_TO_STAGE, addMoveObj); sprite.addEventListener(Event.REMOVED_FROM_STAGE, removeMoveObj); var moveLayers=new MoveObj(stage,layer1,layer2,layer3); layer1.i1.addEventListener(MouseEvent.CLICK, one); } private function addMoveObj(evt:Event):void { trace("added"); sprite.addEventListener(Event.ENTER_FRAME, added); } private function removeMoveObj(evt:Event):void { trace("removed"); sprite.removeEventListener(Event.ENTER_FRAME, added); } private function added(evt:Event):void { trace("_____________") } private function one(evt:MouseEvent):void { removeChild(sprite); //trace("click") } } } Последний раз редактировалось Dr_Bra; 02.07.2010 в 18:37. |
|
|||||
Показываю весь мой темповый as:
package { import flash.display.Sprite; import flash.events.Event; [SWF(backgroundColor = 0xFFFFFF, frameRate = 23, width = 550, height = 400)] /** @author KorDum **/ public class Main extends Sprite { 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 point var sprite:Sprite = new Sprite(); sprite.addEventListener(Event.ADDED, onAdd); sprite.addEventListener(Event.ADDED_TO_STAGE, onAddToStage); addChild(sprite); } private function onAdd(e:Event):void { trace("added"); } private function onAddToStage(e:Event):void { trace("addedToStage"); } } } Добавлено через 6 минут Быть может виноват порядок регистрирования слушателя и добавления в список отображения?
__________________
тут я |
|
|||||
огромное спасибо, оказалось, что эту строчку нужно было поставить ниже
sprite.addEventListener(Event.ADDED, onAdd); sprite.addEventListener(Event.ADDED_TO_STAGE, onAddToStage); удивительная штука, сначала "вешаются" события на переменную, а после этого нужно добавлять на сцену эту самую переменную .. |
Часовой пояс GMT +4, время: 20:14. |
|
« Предыдущая тема | Следующая тема » |
Теги |
ADDED , REMOVED , событие |
|
|