SlyX 0 Denunciar post Postado Novembro 5, 2009 var conteudo:MovieClip = new MovieClip(); conteudo.x = 15; conteudo.y = 15; addChild(conteudo); var _loader:Loader; function setupLoader():void { _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); conteudo.addChild(_loader); } function loadProgress(event:ProgressEvent):void { var percentLoaded:Number = event.bytesLoaded/event.bytesTotal; percentLoaded = Math.round(percentLoaded * 100); trace("Loading: "+percentLoaded+"%"); } function loadComplete(event:Event):void { trace("Complete"); } function novoConteudo(target) { //animacao saida abrirConteudo(target); } function abrirConteudo(file:String):void { _loader.load(new URLRequest(file)); } setupLoader(); abrirConteudo('home.swf'); -------------- o que acontece, as coisas do home, continuam carregadas, oq eu queria fazer era algo tipo: function novoConteudo(target) { //animacao saida conteudo.unloadMovie(); // AS2 bizarro.. abrirConteudo(target); } Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Novembro 6, 2009 Crie uma function com um removeChild(conteudo). Um exemplo, apenas para dar uma idéia: elektraLoader.addEventListener(MouseEvent.CLICK, retiracontent); function retiracontent(elektraevent:MouseEvent):void{ removeChild(elektraLoader); page1_mc.gotoAndPlay(1); page2_mc.gotoAndPlay(1); //...etc } gotoAndPlay porque o conteúdo dos meus mcs possuem animações. Compartilhar este post Link para o post Compartilhar em outros sites
SlyX 0 Denunciar post Postado Novembro 9, 2009 Então, cheguei a conclusão que ele esta funcionando, o problema na verdade, são os event listners dentro do swf externo, que quando dou um unload continuam funcionando, como eu poderia remover todos os eventlistners do swf externo? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 10, 2009 Utilize removeListener... quando aplicar o unload remova os Listeners daquele objeto ;) Abraços Compartilhar este post Link para o post Compartilhar em outros sites
SlyX 0 Denunciar post Postado Novembro 10, 2009 Utilize removeListener... quando aplicar o unload remova os Listeners daquele objeto ;) Abraços existe alguma forma de remover todos os listners de um swf externo? ou dentro deste swf, eu teria que fazer um vetor com todos os listners para remover? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 10, 2009 Você teria que usar algum tipo de while relacionado... Mas removeAllListeners disconheço Exemplo encontrado na net... não sei se funciona... mas a ideia é exatamente essa: var listeners:Dictionary = new Dictionary(); override public function addEventListener( type : String, listener : Function, useCapture : Boolean = false, priority : int = 0, useWeakReference : Boolean = false) : void { if( listeners[ type ] ) { if( listeners[ type ] [ useCapture ] { //snip... etc: check for existence of the listener removeEventListener( type, listeners[ type ] [ useCapture ], useCapture ); listeners[ type ] [ useCapture ] = null; //clean up: if no listeners of this type exist, remove the dictionary key for the type, etc... } } listeners[ type ] [ useCapture ] = listener; super.addEventListener( type, listener, useCapture, priority, useWeakReference ); }; Outro exemplo você encontra aqui: http://blog.reyco1.com/method-of-removing-all-event-listeners/ Abraços Compartilhar este post Link para o post Compartilhar em outros sites
SlyX 0 Denunciar post Postado Novembro 13, 2009 Você teria que usar algum tipo de while relacionado... Mas removeAllListeners disconheço Exemplo encontrado na net... não sei se funciona... mas a ideia é exatamente essa: var listeners:Dictionary = new Dictionary(); override public function addEventListener( type : String, listener : Function, useCapture : Boolean = false, priority : int = 0, useWeakReference : Boolean = false) : void { if( listeners[ type ] ) { if( listeners[ type ] [ useCapture ] { //snip... etc: check for existence of the listener removeEventListener( type, listeners[ type ] [ useCapture ], useCapture ); listeners[ type ] [ useCapture ] = null; //clean up: if no listeners of this type exist, remove the dictionary key for the type, etc... } } listeners[ type ] [ useCapture ] = listener; super.addEventListener( type, listener, useCapture, priority, useWeakReference ); }; Outro exemplo você encontra aqui: http://blog.reyco1.com/method-of-removing-all-event-listeners/ Abraços até ai tudo beleza, sera que existe alguma formas de listar todos os listeners ativos? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 14, 2009 Você entendeu???? alguma coisa do código que você leu? Ele faz exatamente isso ele cria um dicionario com todos os listeners... e ai você pode remover eles. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
SlyX 0 Denunciar post Postado Novembro 16, 2009 Você entendeu???? alguma coisa do código que você leu? Ele faz exatamente isso ele cria um dicionario com todos os listeners... e ai você pode remover eles. Abraços sim eu entendi que ele substitui a o addlistener pelo novo que no caso entra no dicionario e fica listado, mas eu estava a desenvolver da minha forma para ver ate onde conseguia chegar ai queria saber se era possivel listar os listener ativos como a gente fazia no AS2 para detectar todos os movieclips dentro de um certo local no stage, porque eu queria ter um controle sobre estes listners, porque as vezes quando você da um unload, alguns saem mas quando você da o loaddenovo, ele não reative estes listeners, ai eu estava a usar um listner do added stage, do remove on stage Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 17, 2009 Hmm você quer algo equivalente ao ChildrenNum só que de listeners... Ai eu acho complicado... Você pode criar uma classe, que detecte a cada child que é adicionado ao stage, e ai ele alimenta uma array com isso. Para fazer isso você teria que colocar um listener no stage que pegue cada... você pode tentar fazer isso com ADDED_TO_STAGE Mas não sei se vai funcionar... Eu não tenho muita experiencia ainda com AS 3.0. Mas você deveria dar uma lida em HasEventListener e no ADDED_TO_STAGE Podem vir a solucionar seu problema... ou o quer que você queira fazer hehe Abraços Compartilhar este post Link para o post Compartilhar em outros sites