Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com dificuldades de adicionar MovieClips diretamente da Library no Stage.
Esta é minha Library:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i46.tinypic.com/2qm1agm.jpg&key=ea91a91463583d1ae9d1dfd16dd440ba3318afeb91998ef0eeda9177c4339ac1" alt="Imagem Postada" />
O MovieClip verificaResposta possui o export de actionscript com o mesmo nome verificaResposta, internamente ele possui apenas 2 frames quase idênticos, a única diferença é que no segundo frame existe um stop();
/applications/core/interface/imageproxy/imageproxy.php?img=http://i46.tinypic.com/2mg1l5t.jpg&key=61a0409c5b467e3fbdd3d324d49da1f518776f632af6937360567b2c298e5060" alt="Imagem Postada" />
Agora a chamada na timeline no Stage principal está sendo feita assim:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i49.tinypic.com/ddice0.jpg&key=4e4dda2488107bf1a5021973b51be1cae572329c1c3526d65d8eeede07035579" alt="Imagem Postada" />
Mas ao compilar não dá certo, aparece uma mensagem de erro que não tenho a menor idéia de como resolver, pois pela documentação da Adobe a chamada está correta, não está faltando parâmetros!
/applications/core/interface/imageproxy/imageproxy.php?img=http://i47.tinypic.com/1zpgrkm.jpg&key=42eecef295029f24ec4b3c8b43afe779cf80c820499ae95aa131c3b7f9d12351" alt="Imagem Postada" />
Alguém usa ou já usou esse tipo de carregamento de MovieClips e pode me indicar o que há de errado?
Os parâmetros para compilação está configurada assim:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i46.tinypic.com/xc7y51.jpg&key=c6716e4fbdcf6448e7521497f367a900d4f7d074588d8dcefe53c90bf4afd9b4" alt="Imagem Postada" />
você precisa criar o objeto verificaResposta com o operador new. Algo assim:
addChild(new verificaResposta());
porém dessa forma você não vai ter mais acesso a esse objeto, mas ela vai estar no palco. Então se você for precisar inserir mais interação ao objeto, aponte uma variável para ele:
var meuVerificaResposta:MovieClip = new verificaResposta();
addChild(meuVerificaResposta);
agora você pode se referir ao seu objeto com a variavel meuVerificaResposta.Resolvido
Pessoal consegui resolver. O problema dos parâmetro é que não havia instância previamente criada.
Na timeline a chamada deve ser:
stop();
var resposta:MovieClip = new verificaResposta();
MovieClip(root).addChild( resposta );
Obrigado a todos que ajudaram! acabei resolvendo antes de ler as respostas. Muito obrigado.
http://www.brunoribeiro.net/?tag=estudo
Espero que dê uma luz :)
por isso é sempre bom pesquisar e de certa forma esgotar as possibilidades de resolução antes de criar um post.
bom que fica como referência =)
Para não abrir outro tópico estou adicionando essa questão relacionada ao caso acima.
criei um arquivo para comportar a classe VerificaResposta.as
associei ele na propriedade do MovieClip verificaResposta.
ele ficou assim internamente:
package com.danielgianni.VerificaResposta{
import flash.display.MovieClip;
public class VerificaResposta extends MovieClip {
private var statusEstrela:Boolean;
public function VerificaResposta( posicaoX:Number = 0, posicaoY:Number = 0 ) {
this.statusEstrela=false;
this.x=posicaoX;
this.y=posicaoY;
trace("x" + x + "\ny" + y + "/nstatusEstrela "+ statusEstrela);
}
}// fim classe
}// fim do pacote
mas agora o construtor não funciona se eu passo parâmetros assim:
stop();
var Resposta:VerificaResposta = new VerificaResposta( 100, 100 );
MovieClip(root).addChild( Resposta );
Ele reclama "1137: Incorrect number of arguments. Expected no more than 0." danadinho como não esperava por mais que nenhum argumento?
Em resumo o que eu quero fazer é o seguinte:
1) Se eu clicar no botão que está dentro do movieclip eu vou instanciar uma outra classe dentro da VerificaResposta que vai corrigir as respostas.
milagrosamente se eu não passar nenhum parâmetro ele chama o construtor corretamente (o trace aparece)!!!
stop();
var Resposta:VerificaResposta = new VerificaResposta();
MovieClip(root).addChild( Resposta );
Eu programo OOP em php e c#, mas o ActionScript 3 tá me dando um baile!!! (No Flex parece tudo mais fácil e amigável rs) acho que deve ser algum trauma com flash.
- O nome da classe não vai no endereço do package;
- Para verificar se o flash está encontrando a classe que você espera, clique no sinal verde "Validate class definition";
Ps.: Só o nome da classe é que começa com letra maiúscula, o nome da instância da classe é minúsculo.
O Flash insiste porque realmente falta. haha. O correto é:
MovieClip(root).addChild(new verificaResposta());
Lembre-se que, por convenção, nome de classe sempre começa com letra maiúscula.