Ir para conteúdo

POWERED BY:

Arquivado

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

Isaque Martins

[Resolvido] remover função

Recommended Posts

Olá,

 

tenho 5 botoes em um menu, o botao 1 (home) chama e executa a função home que contém varias instruções, swf's externos e graficos e adiciona eles ao palco, até aí tudo bem.

 

Quando chamo o botão 2(eventos) ele teria que desfazer a função que já está no palco, antes de executar a sua função e adicionar novos elementos ao palco.

 

tipo assim:

 

fundo.bt_home.addEventListener(MouseEvent.CLICK, home);
fundo.bt_eventos.addEventListener(MouseEvent.CLICK, eventos);

//

function home() {
   //O que eu uso aqui pra que antes de começar a executar o 
   //bloco de funções ele elimine o que tem no palco, que a outra
   //função carregou?

   bloco de funções que adiciona objetos ao palco 
}

//

function eventos() {
   //O que eu uso aqui pra que antes de começar a executar o 
   //bloco de funções ele elimine o que tem no palco, que a outra
   //função carregou?

    bloco de funções que adiciona objetos ao palco 
}



 

 

 

 

Como desfazer uma função ou método não se essa seria a denominação mais adequada?

 

tentei com unload mas não deu, o removeEventeListener tb não dá pq o botão é reutilizável, qual o comando que eu uso para desfazer a função que foi executada, sendo que o usuário poderá clicar no botão dela e executar ela de novo mais tarde...

Compartilhar este post


Link para o post
Compartilhar em outros sites

vai depender do que você fez dentro da função...

 

se estiver usando o addChild(), você vai usar o removeChild().

 

Para saber qual o mc vai remover, você pode guardar o objeto no momento da adição ao palco em uma variável, e usar o getChildByName() para indica-lo dentro do removeChild().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw michel

 

Teria como anular a função inteira pra usar ela depois, e não só os componentes q tem nela

 

EX:

 

 

ao clicar no botão eventos chamo a função eventos

fundo.bt_home.addEventListener(MouseEvent.CLICK, home);
fundo.bt_eventos.addEventListener(MouseEvent.CLICK, eventos);

segue a função eventos:

 

function eventos(evt:Event):void	{
	
	bt_casamentos.visible = true;
	bt_aniversarios.visible = true;
	bt_formaturas.visible = true;
	bt_bailes.visible = true;
	bt_serenatas.visible = true;

var mc_box_eventos:MovieClip = new MovieClip();
mc_box_eventos.x = 340;
mc_box_eventos.y = 85;
addChild(mc_box_eventos);


bt_casamentos.addEventListener(MouseEvent.CLICK, carrega_eventos);
bt_aniversarios.addEventListener(MouseEvent.CLICK, carrega_eventos);
bt_formaturas.addEventListener(MouseEvent.CLICK, carrega_eventos);
bt_bailes.addEventListener(MouseEvent.CLICK, carrega_eventos);
bt_serenatas.addEventListener(MouseEvent.CLICK, carrega_eventos);
//
var carreg1:Loader = new Loader();
var carr_loader:Loader = new Loader();
var carr_comeca:URLRequest = new URLRequest("bt_casamentos.swf");
carr_loader.load(carr_comeca);
mc_box_eventos.addChild(carr_loader);

function remove1() {
	carr_loader.unload();
}

function remove2() {
	carreg1.unload();
}

function carrega_eventos(evt:MouseEvent):void {
	remove1();
	remove2();
	
	if (carreg1 == true) {
		carreg1.unload();
	}
	}
	var verifica:String;
	verifica = evt.target.name;
	var req1:URLRequest = new URLRequest(verifica + ".swf");
	
	carreg1.load(req1);
	var carreg:Boolean;
	carreg = true;
	
	mc_box_eventos.addChild(carreg1);
}

ai eu lhe pergunto, teria como ao clicar no botão home ele dar uma espécie de unload(sei q n é esse o comando, só o ex) na função toda e o palco voltar a ser como estava antes da função exemplo ser executada?

 

OBS:Tenho tb outra dúvida, não sei se será necessário abrir outro tópico, é em relação à uma video aula que você publicou no m masters sobre um player de musicas, funciona tudo ótimo mas ele tem um bug na barra de carregamento toda vez que muda a musica ela aparece completa (por fração de segundo) á esquerda do ponto inicial dela, ou seja, fora do espaço dela. testei tb no .fla q você disponibilizou para download e deu o msm bug.

 

De qualquer forma parabéns pelas video aulas tem ajudado muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce pode remover o evento e nao a funcao em si, porque a funcao eh um bloco de codigos que fica no projeto e só é acionado quando chamado.

 

Pesquise por removeEventListener.

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois é kisuke, é isso que eu quero.., uma maneira de "desacionar" a função

 

por exemplo se eu coloco o remove, removendo o addEventListener do botao só vai fazer o botao deixar de funcionar e não vai retirar do palco tudo que foi adicionado pela função evento() entendeu?

 

fundo.bt_home.addEventListener(MouseEvent.CLICK, home);
fundo.bt_eventos.addEventListener(MouseEvent.CLICK, eventos);

 

function home(evt:Event):void {
fundo.bt_eventos.removeEventListener(MouseEvent.CLICK, eventos);
//Novo bloco de informações que executam novas funções


}

Queria saber se tem uma maneira de fazer isso ou se vou ter que mudar minha linha de raciocínio pra outra forma de adicionar e remover blocos de ojetos ao palco dinamicamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do mesmo modo que você colocou eles no palco você os retira. Por exemplo, se você colocou um mc vindo em alpha=1, tira ele colocando alpha=0, e depois que tudo sair da tela você remove os listeners.

O modo como você vai retira cada mc do palco vai do conceito/animação que você criou no site. Vê como fica melhor eles saírem e então retira os listeners.

 

você pode fazer o seguinte. Se objetos da home estão no palco e você clica em eventos, primeiro você chama uma função para retirar os mcs de home do palco, e então faz uma condição se o último mc que tem que sair estiver fora do palco, tipo alpha=0 ou a posição x dele é maior/menor que o stage.width você chama a função que traz os mcs de eventos.

 

Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

resolvido

 

vlw linoart, seu comentário me deu uma idéia, resolvi fazendo uma outra função que contém apenas os unloads,removes e retiradas dos objetos do palco.

 

q kbeça era só questão de estruturação

 

vlw a todos pela ajuda

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.