Ir para conteúdo

Arquivado

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

D4rKn3ss

Como duplicar um botão via ActionScript?

Recommended Posts

Olá a todos,O que eu preciso é o seguinte:Criar uma função no 1º quadro de meu filme para duplicar um botão dentro do palco no flash, de acordo com um numero pré-determinado, coloca-los um embaixo do outro, e inserir dentro de cada botão duplicado um valor distinto em seu evento on(release).Esse valor distindo dentro do on(release) seria só mudar a variável.Exempo:no 1º botão estaria assim:on(release) { _root.vid = _root.nid1; gotoAndPlay(2); }No segundo seria preciso mudar o nome da variável, de nid1 para nid2.Alguém saberia me ajudar com isso?Desde já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cria uma array e ness array você poe as variaveis e cria um loop´nesse loop você faz com que cada volta que o loop der ele ative um botao eu so nao posso te mandar um tuto por que eu to no trampo agora.e estudando muito para a prova de certificaçao da macromediate mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

entaum ... problema.. fazer duplicar e facil mas acho que você vai ter o mesmo problema que eu !!

vamos la.!!!

 

criando um loop

o movieclip a ser duplicado eu vo usar o nome nomedoMC ok ele se encontra na raiz do seu flash ("_root")

for (i=0;i<10;i++){ this.nomedoMC._visible = false; duplicateMovieClip("this.nomedoMC", "dulp"+i, i); this["dulp"+i]._x = i*20; //criando a função para os MC duplicados this["dulp"+i].onRelease = function() {  //se naum funcionar dinamicamente você vai ter o mesmo problema que eu  _root.vid = _root.nid+i;  gotoAndPlay(2); };}
espero que ajude...

 

:mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

entaum ... problema.. fazer duplicar e facil mas acho que você vai ter o mesmo problema que eu !!

vamos la.!!!

 

criando um loop

o movieclip a ser duplicado eu vo usar o nome nomedoMC ok ele se encontra na raiz do seu flash ("_root")

for (i=0;i<10;i++){ this.nomedoMC._visible = false; duplicateMovieClip("this.nomedoMC", "dulp"+i, i); this["dulp"+i]._x = i*20; //criando a função para os MC duplicados this["dulp"+i].onRelease = function() {  //se naum funcionar dinamicamente você vai ter o mesmo problema que eu  _root.vid = _root.nid+i;  gotoAndPlay(2); };}
espero que ajude...

 

:mellow:

<{POST_SNAPBACK}>

se for um movieclip você pode fazer assim

 

 

for (i=0;i<10;i++){

this.nomedoMC._visible = false;

duplicateMovieClip("this.nomedoMC", "dulp"+i, i);

this["dulp"+i].id = i

this["dulp"+i]._x = i*20;

//criando a função para os MC duplicados

this["dulp"+i].onRelease = function() {

 //se naum funcionar dinamicamente você vai ter o mesmo problema que eu

 _root.vid = _root.nid+this.id;

 gotoAndPlay(2);

};

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, obrigado.

 

Bem funcionou, consegui duplicar o movie e coloca-lo nas posições que precisava. O erro é que eu estava tentado fazer isso com botão.

 

Mass... como nem tudo é perfeito, me deparei com outro problema.

 

Os movies foram duplicados, a função onRelease esta funcionando, porém eu estou pegando os valores de uma variável que o PHP repassa para o Flash.

 

veja o código:

 

_root["mc"+i].onRelease = function(){     _root.nid = objRecebe.id0++;     gotoAndPlay(2);}
Agora explico, estou fazendo um sistema de notícias em Flash.

Quando o SWF inicia, ele chama um script PHP, que se conecta ao MySQL, pega os dados da tebela notícias que tenho em meu BD e retorna essa informação para o Flash, que resgata as informações dos resultados do PHP, através de LoadVars.

 

No primeiro Frame aparece somente o Título das notícias, com um botão pra pessoa clicar e ler a notícia. Quando a pessoa ativa o onRelease, do botão, a animação vai para o 2 Frame, onde tem um movie clipe, como se fosse uma página sendo folheada e a notícia é exibida.

 

Como essa notícia é exibida?

Neste movie clip que mostra o texto da notícia tem uma outra função LoadVars, que chama outro script PHP, e repassa pra ele o ID da notícia:

 

objNoticia.load("http://localhost/_noticia.php?id="+_root.nid);
O PHP faz um select no BD e retorna o valor para uma caixa de textos no flash.

 

Agora começa o problema:

Quando eu duplico o movie clipe, essa função ( _root.nid = objRecebe.id0++ ;) colocada no evento onRelease, do movie, recebe o ID de cada notícia, e joga para a variável nid, mas a variável só deveria receber esse valor quando eu acionasse o evento onRelease do movie clipe.

 

E é justamente isso o que não esta acontecendo, o ActionScript esta setando o valor da variável toda vez que o loop passa por esse código acima (que esta dentro do onRelease do movie). Então a variável nid esta sempre recebendo o ultimo valor retornado pelo PHP, e todo os botões estão chamando sempre a mesma notícia :(

 

PS: A variável nid, é que passa para o segundo script PHP o ID da notícia pra esse fazer um Select no Bando de Dados. A cada movie clipe duplicado que eu ativar a função onRelease, a variável nid deveria receber um valor diferente. Mas só deveria receber esse valor quando eu acionasse o onRelease do movie, não antes quando eu declaro o valor do evento onRelease.

 

Alguém poderia me indicar um solução, estou quebrando a cabeça aqui, mas até agora não achei algo que resolva.

 

A solução drástica que pensei foi em limitar o número de notícias exibidas pra 20 por exemplo, ai eu posso colocar as variáveis de forma manual. Dessa forma da certo, cada movie que clico aparece a notícia correspondente, mas dessa forma fica uma coisa meio que engessada, limitada.

 

Obrigado a todos que ajudou, e desde já agradeço quem vier a ajudar em mais essa dúvida.

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.