Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Naty

Menu

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.