Naty 3 Denunciar post Postado Outubro 30, 2009 Tenho um menu e preciso carregar meus swfs externos qdo cada botao for clicado. O meu problema é que nao estou conseguindo dizer para o boato deletar o que foi carregado e carregar o seu swf. meu codigo... var home:Home = new Home var empresa:Empresa = new Empresa var linhaBrasil:LinhaBrasil = new LinhaBrasil var comemorativa:Comemorativa = new Comemorativa var tecnologia:Tecnologia = new Tecnologia var localizacao:Localizacao = new Localizacao var patrocinio:Patrocinio = new Patrocinio var contato:Contato = new Contato // Cria Botões Menu var animaHome:Tween var animaEmpresa:Tween var animaLinhaBrasil:Tween var animaComemorativa:Tween var animaTecnologia:Tween var animaLocalizacao:Tween var animaPatrocinio:Tween var animaContato:Tween //Cria variaveis para animar bt menu var antiGC:Array = new Array() // Anti Garbari Collect // para cada bt tem sua animacao de entrada function vaiHome (evt:Object) { addChildAt(home, 2) home.x = 470.1 home.y = 55.4 animaHome = new Tween(home, "alpha", Elastic.easeOut, 0, 1, 0.1, true); antiGC.push(animaHome); home.meuTween = animaHome animaHome.addEventListener(TweenEvent.MOTION_FINISH, vaiEmpresa) } function vaiEmpresa (evt:TweenEvent) { addChildAt(empresa, 2) empresa.x = 595 empresa.y = 55.4 animaEmpresa = new Tween(empresa, "alpha", Elastic.easeOut, 0, 1, 0.1, true); antiGC.push(animaEmpresa); empresa.meuTween = animaEmpresa animaEmpresa.addEventListener(TweenEvent.MOTION_FINISH, vaiLinhaBrasil) } var mcHome:MovieClip = new MovieClip addChildAt(mcHome, 1) // crio um bloco para a animacao que ja carrega no index e corresponde ao bt home var textoHome:TextoHome = new TextoHome var animaTexto:Tween function vaiTexto (evt:TweenEvent) { mcHome.addChild(textoHome) textoHome.x = 519 textoHome.y = 208.8 animaTexto = new Tween(textoHome, "alpha", Elastic.easeOut, 0, 1, 0.1, true); antiGC.push(animaTexto); textoHome.meuTween = animaTexto } var escolhaModalidade:EscolhaModalidade = new EscolhaModalidade var animaModalidade:Tween function vaiModalidade (evt:TweenEvent) { mcHome.addChild(escolhaModalidade) escolhaModalidade.x = 460.4 escolhaModalidade.y = 280.3 animaModalidade = new Tween(escolhaModalidade, "alpha", Elastic.easeOut, 0, 1, 0.1, true); antiGC.push(animaModalidade); escolhaModalidade.meuTween = animaModalidade } var fundoModalidade:FundoModalidades = new FundoModalidades var animaFundoModalidade:Tween function vaiFundoModalidade (evt:TweenEvent) { mcHome.addChildAt(fundoModalidade, 0) fundoModalidade.x = 460.4 fundoModalidade.y = 315.4 animaFundoModalidade = new Tween(fundoModalidade, "alpha", Elastic.easeOut, 0, 1, 0.1, true); antiGC.push(animaFundoModalidade); fundoModalidade.meuTween = animaFundoModalidade } // chamo os botoes home.addEventListener(MouseEvent.CLICK, clicouHome) empresa.addEventListener(MouseEvent.CLICK, clicouEmpresa) // e aqui começa meu problema... function clicouHome (evt:MouseEvent) { // var animamcHome:TransitionManager = new TransitionManager(mcHome) animamcHome.startTransition ({ type:Fade, direction:Transition.IN, duration:3, easing:Strong.easeOut}) // addChild(mcHome) // } function clicouEmpresa (evt:MouseEvent) { // var empresaRequest:URLRequest = new URLRequest("texto_empresa.swf") var empresaLoader:Loader = new Loader empresaLoader.load(empresaRequest) // empresaLoader.x = 425 empresaLoader.y = 212.4 // var mcEmpresa:MovieClip = new MovieClip mcEmpresa.addChild(empresaLoader) // var animamcEmpresa:TransitionManager = new TransitionManager(mcEmpresa) animamcEmpresa.startTransition ({ type:Fade, direction:Transition.IN, duration:3, easing:Strong.easeOut}) addChildAt(mcEmpresa, 3) // } Já tentei utilizar o removeChild(mcHome) me dá um erro.... TypeError: Error #2007: O parâmetro child não deve ser nulo. at flash.display::DisplayObjectContainer/removeChild() at home_fla::MainTimeline/clicouEmpresa() function clicouHome (evt:MouseEvent) { removeChild(mcHome) // var animamcHome:TransitionManager = new TransitionManager(mcHome) animamcHome.startTransition ({ type:Fade, direction:Transition.IN, duration:3, easing:Strong.easeOut}) // addChild(mcHome) } function clicouEmpresa (evt:MouseEvent) { // removeChild(mcEmpresa) // var empresaRequest:URLRequest = new URLRequest("texto_empresa.swf") var empresaLoader:Loader = new Loader empresaLoader.load(empresaRequest) // empresaLoader.x = 425 empresaLoader.y = 212.4 // var mcEmpresa:MovieClip = new MovieClip mcEmpresa.addChild(empresaLoader) // var animamcEmpresa:TransitionManager = new TransitionManager(mcEmpresa) animamcEmpresa.startTransition ({ type:Fade, direction:Transition.IN, duration:3, easing:Strong.easeOut}) addChildAt(mcEmpresa, 3) // } Eu acho que tem eu teria que usar o tal do evt.target, porém não sei como.... teria que deixar meus bts do menu dinamicos para que qdo clicasse automaticamente disparasse qual bt foi clicado e automaticamente remover o mc correspondente. Mais é justamente nisso que estou emperrada !! meus bts estão na biblioteca e não em um XML por isso estou com dificuldade..... me dá uma luz ? Compartilhar este post Link para o post Compartilhar em outros sites
Naty 3 Denunciar post Postado Novembro 1, 2009 como ainda ninguém me respondeu.... estou eu buscando soluções atraves do google... porem ainda nao consegui fazer funcionar..... alguém pode me dar uma luz, por favor.... tentei fazer o o clique dos botoes atraves do if else... porem mesmo assim me da um erro... Error #2025: O DisplayObject fornecido deve ser filho do responsável pela chamada. at flash.display::DisplayObjectContainer/removeChild() at home_fla::MainTimeline/clicou() aki esta meu codigo.... home.addEventListener(MouseEvent.CLICK, clicou) empresa.addEventListener(MouseEvent.CLICK, clicou) function clicou (evt:MouseEvent) { removeChild(mcGeral) // if(evt.target.name == "home"){ var animamcHome:TransitionManager = new TransitionManager(mcHome) animamcHome.startTransition ({ type:Fade, direction:Transition.IN, duration:3, easing:Strong.easeOut}) addChildAt(mcHome, 1) home.removeEventListener(MouseEvent.CLICK, clicou) // }else if(evt.target.name == "empresa"){ var empresaRequest:URLRequest = new URLRequest("texto_empresa.swf") var empresaLoader:Loader = new Loader empresaLoader.load(empresaRequest) empresaLoader.x = 425 empresaLoader.y = 212.4 // var mcEmpresa:MovieClip = new MovieClip mcEmpresa.addChild(empresaLoader) // var animamcEmpresa:TransitionManager = new TransitionManager(mcEmpresa) animamcEmpresa.startTransition ({ type:Fade, direction:Transition.IN, duration:3, easing:Strong.easeOut}) mcGeral.addChildAt(mcEmpresa, 1) // empresa.removeEventListener(MouseEvent.CLICK, clicou) } } Compartilhar este post Link para o post Compartilhar em outros sites
Naty 3 Denunciar post Postado Novembro 3, 2009 Poxa ninguém pode me ajudar ?? Depois de tanto pesquisar e ler o Help do Flash..consegui remover o MC, removendo o container sendo 0 (mcGeral.removeChildAt(0)) porem nao é o correto pois se eu clicar novamente no empresa ele adicionara o mc por cima...... ficando um em cima do outro.... se eu remover o EventListener ai nao remove mais o mc..... Estes negocio de remover o mc e dps carregar outro e remover conforme o bt clicado é mto complicado..... ainda nao consegui acertar..... // Cria mc Container Menu var containerMenu:Sprite = new Sprite(); addChildAt(containerMenu, 1); // Cria MC Container var mcGeral:MovieClip = new MovieClip addChildAt(mcGeral, 1) var mcHome:MovieClip = new MovieClip mcGeral.addChild(mcHome) // var animamcHome:TransitionManager = new TransitionManager(mcHome) var mcEmpresa:MovieClip = new MovieClip var animamcEmpresa:TransitionManager = new TransitionManager(mcEmpresa) home.addEventListener(MouseEvent.CLICK, clicou) empresa.addEventListener(MouseEvent.CLICK, clicou) function clicou (evt:MouseEvent) { // if(evt.target == home){ mcGeral.removeChildAt(0) // animamcHome.startTransition ({ type:Fade, direction:Transition.IN, duration:3, easing:Strong.easeOut}) mcGeral.addChild(mcHome) // }else if(evt.target == empresa){ mcGeral.removeChildAt(0) // var empresaRequest:URLRequest = new URLRequest("texto_empresa.swf") var empresaLoader:Loader = new Loader empresaLoader.load(empresaRequest) mcEmpresa.addChild(empresaLoader) // empresaLoader.x = 425 empresaLoader.y = 212.4 // animamcEmpresa.startTransition ({ type:Fade, direction:Transition.IN, duration:3, easing:Strong.easeOut}) // mcGeral.addChild(mcEmpresa) } } Compartilhar este post Link para o post Compartilhar em outros sites