Ir para conteúdo

POWERED BY:

Arquivado

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

laraujo

Sorteio de Camadas

Recommended Posts

Alguém sabe se é possível fazer sorteio de Camadas?Tipo assim, cada vez que o .swf for carregado ele vai para uma camada diferente é mostra a animação que esta nessa camada animação diferente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como você selecionar camadas diferentes, mas tem como sortear MovieClips diferentes. Primeiro selecione todos os frames de uma das camadas e, com o botão direito, selecione Cut Frames.

 

Aperte Ctrl+F8 para criar um movieclip vazio (aqui pode dar o nome que quiser). Com o botão direito de novo dê um Paste Frames no único frame que tem.

 

Volte para a timeline principal e faça isso com as outras camadas. Depois abra a biblioteca (F11) e arraste os movie clips que você criou para o palco. Dê a cada um, um nome de instância (clique no mc e vá no painel Properties) com uma ordem lógica (por exemplo "camada1" e "camada2", etc).

 

Aí crie uma nova camada com o nome de Actions, selecione o primeiro frame dela e aperte F9 para entrar no painel Actions. Digite:

 

var total:Number = 5//troque o número pelo total de movie clipsfor (var i:Number = 1; i < total; i++){//cria um "atalho" para cada movievar movie:MovieClip = eval("_root.camada"+i);//faz todos pararem no frame 1movie.gotoAndStop(1);}//sorteando um para dar um play_root["camada"+(random(total)+1)].play();

Qualquer coisa poste aí, flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Valeu pela explicação, mas não deu muito certo...

Pois quando eu abro o .swf ele mostra as duas camadas no palco e o objetivo é mostrar aleatório, uma ou outra, ele mostras as duas.

E quando eu coloco 2 em (var total:Number = 2) , estou usando dois clips, ele anima os dois movie clips, para o efeito ser aleatório eu tenho que colocar 3

Sugestões??

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, desculpa Laraujo, eu errei no laço for:

 

for (var i:Number = 1; i <= total; i++){						  ^ menor ou igual

E para fazer sumir as camadas você pode adicionar essa linha depois do stop:

movie._visible = false;

E depois é só ajeitar para que a camada escolhida fique visível:

var sorteado:MovieClip = eval("camada"+(random(total)+1));sorteado.play();sorteado._visible = true;

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antoniosp,

 

Valeu pela força mas ainda não esta do jeito que eu imaginei, estou fazendo o teste desse código com dois movie clips, o primeiro aparece sozinho quando é sorteado, mas quando o segundo é sorteado aparece os dois movies, e tb tem hora que anima os dois.

Não sei se meu código esta errado:

 

var total:Number = 2//troque o número pelo total de movie clipsfor (var i:Number = 1; i <= total; i++){//cria um "atalho" para cada movievar movie:MovieClip = eval("_root.camada"+i);//faz todos pararem no frame 1movie.gotoAndStop(1);}movie._visible = false;var sorteado:MovieClip = eval("camada"+(random(total)+1));sorteado.play();sorteado._visible = true;//sorteando um para dar um play_root["camada"+(random(total)+1)].play();

A ideia é cada hora que eu abrir o .swf apareça um movie e o outro não selecionado não apareça.

 

Obrigado!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixe o primeiro frame de todos os movieclips vazio com a ação stop(); se a idéia é o movieclip ficarem loop, no ultimo frame de cada mc coloque a ação gotoAndPlay(2);

 

agora é só sortear um no palco assim:

 

var total:Number = 5;

clearInterval(agonia);

agonia = setInterval( function(){

_root["camada"+(random(total)+1)].play();

clearInterval(agonia);

}, 500);

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, eu tentei ir por um caminho mais fácil mas acabei só complicando... http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

Vou deixar aqui como eu tinha pensado, mas faz do jeito do carneirinho que tb dá.

 

var total:Number = 5for (var i:Number = 1; i <= total; i++){var movie:MovieClip = eval("_root.camada"+i);movie.gotoAndStop(1);movie._visible = false;}var sorteado:MovieClip = eval("camada"+(random(total)+1));sorteado.play();sorteado._visible = true;
Flw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Antonio, você só precisa tomar um certo cuidado com o tempo de execução do Flash, se você fizer um movieclip animando por exemplo uma bola andando em 20 frames, ai você coloca um stop(); no primeiro frame e da o nome de instancia pra ele de "bola", dai joga ele na timeline principal e todo feliz você coloca a ação no primeiro frame:

 

bola.gotoAndPlay(2);

 

ele não vai funcionar, porque prineiro ele carrega a timeline do palco, depois a ação e depois os frames do movieclip, ele vai ficar parado, você vai querer dar nó no saco, va ver que outras propriedades vão funcionar, como _alpha e tal, menos essa, então tome cuidado com essas frescuras do flash.

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal!!Agora funcionou.Mas como eu faço para o clip que não foi selecionado não apareça?Quero que só apareça no palco o clip sorteado.

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.