..:: MX Studio Fóruns ::..: Como criar movieclips clicáveis via ActionScript? Ajudem um novato! rs - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Como criar movieclips clicáveis via ActionScript? Ajudem um novato! rs

#1 User is offline   bega 

  • Group: Membros
  • Posts: 2
  • Joined: 30-March 09

Posted 30 March 2009 - 07:40 PM

Alguém poderia ajudar um novato?

Estou tendo um sério problema (rs) em fazer o código abaixo funcionar... O problema está no eval("quadro"+i).onRelease = function() {...
Como devo me referenciar a um movieclip criado e nomeado via actionscript (para poder inserir ações nele, como nesse caso) ?


stop();

// declara a quantidade de imagens a serem carregadas e a posição inicial
var amntImages:Number = 5;
var ypos:Number = 0;
var xpos:Number = 200;

// loop que cria os movieclips, carrega as imagens em cada um e
//define suas posições (às quais adiciono 80 pixels a cada loop)
for (var i = 1; i<=amntImages; i++) {

// cria o listener
var ouvinte:Object = new Object();

// adiciona a ação ao listener ----------------------- AQUI ESTÁ O PROBLEMA (acho eu) ---------------------------
ouvinte.onLoadComplete = function(clipe) {
eval("quadro"+i).onRelease = function() {

// as ações entrariam aqui

};
};

// cria os movieclips e nomea-os
this.createEmptyMovieClip("quadro"+i,getNextHighestDepth());

// adiciona os listeners aos clips
eval("quadro"+i).addListener(ouvinte);

//cria um loader
var carregador:MovieClipLoader = new MovieClipLoader();

//adiciona o listener a ele
carregador.addListener(ouvinte);

//manda o loader carregar as imagens nos clips
carregador.loadClip(("lookbook/gustavo"+i+".jpg"),("quadro"+i));


//posiciona os clips
eval("quadro"+i)._y = ypos;
eval("quadro"+i)._x = xpos;

//adiciona 80 pixels ao Y
ypos += 80;
}
0

#2 User is offline   Tiago Braga 

  • Group: Moderadores
  • Posts: 732
  • Joined: 15-May 07

Posted 30 March 2009 - 08:36 PM

Tente assim:
CÓDIGO
stop();

// declara a quantidade de imagens a serem carregadas e a posição inicial
var amntImages:Number = 5;
var ypos:Number = 0;
var xpos:Number = 200;

//cria um loader
      var carregador:MovieClipLoader = new MovieClipLoader();

    // cria o listener
    var ouvinte:Object = new Object();

//adiciona o listener a ele
    carregador.addListener(ouvinte);

// loop que cria os movieclips, carrega as imagens em cada um e
//define suas posições (às quais adiciono 80 pixels a cada loop)
for (var i = 1; i<=amntImages; i++) {

// cria os movieclips e nomea-os
    this.createEmptyMovieClip("quadro"+i,getNextHighestDepth());

    // adiciona a ação ao listener  ----------------------- AQUI ESTÁ O PROBLEMA (acho eu) ---------------------------
    ouvinte.onLoadComplete = function(mc:MovieClip) {
mc.onRelease = function() {

        // as ações entrariam aqui

        };
    };

ouvinte.onLoadInit = function(mc:MovieClip) {
mc._y = ypos;
mc._x = xpos;
    };

    // adiciona os listeners aos clips
//eval("quadro"+i).addListener(ouvinte); /////////Não precisa disso aqui/////////////


    //posiciona os clips
/*eval("quadro"+i)._y = ypos;
    eval("quadro"+i)._x = xpos;*/

    //adiciona 80 pixels ao Y
    ypos += 80;
}


Alguns comentários:
Organize melhor seu código. Tudo tem uma ordem.
Vc coloca a linha que cria o objeto MovieClipLoader dentro do for, o que quer dizer que vc criou X novos objeto MovieClipLoader.
Veja o tutorial MovieClipLoader e entenda melhor como funciona.

Bons estudos..

Até
0

#3 User is offline   bega 

  • Group: Membros
  • Posts: 2
  • Joined: 30-March 09

Posted 31 March 2009 - 07:05 PM

xavrim,

antes de tudo, MUITO obrigado pela ajuda... Como iniciante, a ajuda de aguém mais experiente é inestimável, de verdade. Valeu mesmo.

Mas, sobre o script: consegui tornar os mcs clicáveis, mas todos eles executam o mesmo código... Não consigo colocar a variável "i" com seu valor de cada loop, ela sempre tem o valor 6 (do último loop).

Mais alguma luz?

mc.onRelease = function() {
if (_root.mcframe.vmcframe == "meio") {
trace(i);
var vfotoacarregar:String = "/lookbook/"+i+".jpg";
loadMovie(vfotoacarregar,_root.mcframe.fotoezoom.mcFoto);
loadMovie(vfotoacarregar,_root.mcframe.fotoezoom.FotoG)}

else {
trace(i);
var vfotoacarregar:String = "/lookbook/"+i+".jpg";
mcframe.play()}
}
0

#4 User is offline   Tiago Braga 

  • Group: Moderadores
  • Posts: 732
  • Joined: 15-May 07

Posted 02 April 2009 - 07:44 PM

Bom, o que vc está precisando é passar o valor do indice, para chamar tal imagem, certo? Então podemos fazer o seguinte.

Segue a mesma lógica

CÓDIGO
stop();

// declara a quantidade de imagens a serem carregadas e a posição inicial
var amntImages:Number = 5;
var ypos:Number = 0;
var xpos:Number = 200;

//cria um loader
       var carregador:MovieClipLoader = new MovieClipLoader();

     // cria o listener
     var ouvinte:Object = new Object();

//adiciona o listener a ele
     carregador.addListener(ouvinte);

/********
Primeira alteração. Criar uma variável para adicionar o indice
*******/
var indiceMC:Number = 0;

// loop que cria os movieclips, carrega as imagens em cada um e
//define suas posições (às quais adiciono 80 pixels a cada loop)
for (var i = 1; i<=amntImages; i++) {

// cria os movieclips e nomea-os
     this.createEmptyMovieClip("quadro"+i,getNextHighestDepth());

     // adiciona a ação ao listener  ----------------------- AQUI ESTÁ O PROBLEMA (acho eu) ---------------------------
     ouvinte.onLoadComplete = function(mc:MovieClip) {
      /**********
      Outra alteração é a seguinte. O MC é justamente o MC "clicavel" que vc está criando, então
      ***********/
     mc.indice =   indiceMC;
     indiceMC++;
     /**********
     quando vc faz, objeto.nomequalquer, vc está criando uma variável dentro do objeto mc.
     quando carrega a primeira imagem, o indiceMC tem valor de 0, depois que carregar outra imagem
     indiceMC terá valor por causa do indice++ e assim sucessivamente
     *********/
     };

ouvinte.onLoadInit = function(mc:MovieClip) {
mc._y = ypos;
mc._x = xpos;
/**********
Para acessar o valor da variavel faça o seguinte
*********/
mc.onRelease = function() {
//Para teste
trace(this.indiceMC);
//Para chamar a imagem faça
var vfotoacarregar:String = "/lookbook/"+this.indiceMC+".jpg";
         };
     };

     // adiciona os listeners aos clips
//eval("quadro"+i).addListener(ouvinte); /////////Não precisa disso aqui/////////////


     //posiciona os clips
/*eval("quadro"+i)._y = ypos;
     eval("quadro"+i)._x = xpos;*/

     //adiciona 80 pixels ao Y
     ypos += 80;
}


Bom cara, acho que a dica foi essa. Caso não funcione, retorne a postar.. VLW
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


Similar Topics Collapse

  Topic Forum Started By Stats Last Post Info
New Replies Como pegar o conteudo de uma <td> e enviar por email?
Tenho um formulario, porem, ha uma td que possui um valor...
ASP hardbrasil 
  • 2 Replies
  • 1311 Views
New Replies COMO SE INCLUI FERRAMENTAS NO 3Dmax Animação 3D e Modelagem sprintzer 
  • 2 Replies
  • 1648 Views
New Replies Site em fireworks
como fazer para um link no mainframe
Fireworks aniltonandrade 
  • 6 Replies
  • 2289 Views
New Replies Mural de Mensagens.
Como posso fazer.
ColdFusion Thony Conde 
  • 13 Replies
  • 2598 Views
New Replies Google, Yahoo, MySpace se unem para criar fundação OpenSocial Notícias Notícias 
  • 0 Replies
  • 429 Views
New Replies Animando com o after effects, me ajudem!!!
ANIMAÇÃO PISTA DE CORRIDA...
After Effects | Premiere Rafa K 
  • 1 Reply
  • 2385 Views
New Replies Popular coluna com valor determinado
Como adiciono valores numa nova coluna ??
MySQL ROX 
  • 0 Replies
  • 619 Views
New Replies Como colocar um degradê em letras! Fireworks lucaswxp 
  • 1 Reply
  • 2526 Views

Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)