festamix 0 Denunciar post Postado Junho 18, 2010 Olá a todos. Estou desesperado sem saber oq fazer para arrumar essa minha função de carregar. Ela está carregando um swf em cima de outro. Já tentei o removeChild, unload só que não sei se usei eles certo. Já peguei varios script diferentes de upload e todos resultam no mesmo problema. Falta apenas isto para eu acabar o projeto... Por favor, alguem me ajuda. function loadPrincipal(load_mc:MovieClip, load_img:String):void { if (load_mc == mc_conteudo.mc_conteudo_int1){ mc_conteudo.visible = true; } var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.load(new URLRequest(load_img)); function progressHandler(event:ProgressEvent):void { var ratio:Number = event.bytesLoaded / event.bytesTotal; mcBar.scaleX = ratio; } function completeHandler(event:Event):void{ mcBar.visible = false; load_mc.addChild(loader); } } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Junho 19, 2010 Faz um loop pelo numChildren e vai removendo todos os conteúdos do load_mc Exemplo: var mc:MovieClip = new MovieClip(); addChild(mc); var loader:Loader = new Loader(); loader.load(new URLRequest("http://forum.imasters.com.br/random_logos/logo2.png")); mc.addChild(loader); setTimeout(function(){ for(var i:uint = 0; i < mc.numChildren; i++){ mc.removeChildAt(0); } }, 2000); Coloquei para ele remover o conteúdo carregado após 2 segundos mas você não precisa fazer isso... basta fazer direto antes de carregar o novo conteúdo. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
festamix 0 Denunciar post Postado Junho 21, 2010 Está dando o seguinte erro: RangeError: Error #2006: O índice fornecido está fora dos limites. at flash.display::DisplayObjectContainer/removeChildAt() at _1_fla::MainTimeline/loadPrincipal() at _1_fla::MainTimeline/funcbt_wallpaper() Para chamar a função de carregar, eu estou usando a seguinte action: mc_menu.mc_menu_bot.bt_wallpapers.addEventListener(MouseEvent.CLICK,funcbt_wallpaper); function funcbt_wallpaper(evt:MouseEvent){ mcBar.visible = true; loadPrincipal(mc_conteudo.mc_conteudo_int1, "3.wallpaper.swf"); }E assim acontece com outros botões também.Coloquei o removeChildAt dentro do if inicial, pois a limpeza deve ser acionada apenas para um mc. if (load_mc == mc_conteudo.mc_conteudo_int1){ mc_conteudo.visible = true; load_mc.removeChildAt(0); } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Junho 21, 2010 Você verificou se existe algum Child no elemento que você ta procurando? Pois eu não sei como o flash ta interpretando isso: load_mc == mc_conteudo.mc_conteudo_int1 Ao meu ver o erro ta ai... Tentou fazer mc_conteudo.mc_conteudo_int1.removeChildAt(0)? E verificou se tem child com: mc_conteudo.mc_conteudo_int1.numChildren? Abraços Compartilhar este post Link para o post Compartilhar em outros sites
festamix 0 Denunciar post Postado Junho 21, 2010 Kra, ali no load_mc == mc_conteudo.mc_conteudo_int1 andei colocando um trace, e ele aparentemente funciona certo. Só esteja ocorrendo algum erro q não estou conseguindo ver. Quanto ao mc_conteudo.mc_conteudo_int1.removeChildAt(0), já tentei sim. Fiquei na mesma. Uma coisa muito interessante que você falou foi do mc_conteudo.mc_conteudo_int1.numChildren. Não sei o que é isso... O mc_conteudo_int1 um apenas um mc sem nada dentro. E ele se encontra dentro de outro mc chamado mc_conteudo, todo os dois foram criados manualmente, não por AS3. Unico momento que me refiro a eles com algo de Child é na linha load_mc.addChild(loader); mc_conteudo.mc_conteudo_int1.addChild(loader). Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Junho 21, 2010 Bom, Se você fizer: trace(load_mc.numChildren); Ele tem que retornar 1 ou mais que 1... Se ele retornar zero Então não vai ter como você fazer um removeChildAt(0); Por isso que você tem que testar se ele é maior que 1... E colocar dentro de um for normalmente. Assim evita o caso de não existir conteúdo dentro do MC para apagar Abraços Compartilhar este post Link para o post Compartilhar em outros sites
festamix 0 Denunciar post Postado Junho 21, 2010 É kra, retornou 0, como posso contornar essa situação? Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Junho 21, 2010 Não sei se ajuda, isso é de um exemplo bem simples. removeChild(myLoader); page1_mc.gotoAndPlay(1); page2_mc.gotoAndPlay(1); ...etc Compartilhar este post Link para o post Compartilhar em outros sites