..:: 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 Tag alt..
Tem como usar com imagens cadastradas...
Dreamweaver davidortizb 
  • 0 Replies
  • 568 Views
New Replies Máximo de usuarios conectados no banco
como funciona isso?
MySQL rmax209 
  • 1 Reply
  • 1227 Views
New Replies O designer e o desafio de criar seu próprio site Portfólio Tygra 
  • 9 Replies
  • 13593 Views
New Replies Videos
como centraliza
Dreamweaver mattheusp 
  • 1 Reply
  • 798 Views
New Replies Redimencionamento e marca d'agua em diversas imgs
Como eu fasso isso???
Fireworks bl!nkz!n 
  • 3 Replies
  • 809 Views
New Replies como fazer um sisitema de...
URGENTE!!
Dúvidas Gerais Igor [-)IsN_IP(-] 
  • 2 Replies
  • 740 Views
New Replies Problema com acentos no MYSQL
Alguém sabe como funciona...
PHP fabian 
  • 0 Replies
  • 1341 Views
New Replies como iniciar...
e o que fazer....
Flex Shock 
  • 1 Reply
  • 1586 Views

Publicidade




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