Juliano.net 2 Denunciar post Postado Junho 13, 2007 Comecei a criar uma animação onde tenho um MovieClip ocupando toda tela e na parte inferior tenho 6 botões que tem o objetivo de alterar a imagem do MovieClip. Como consigo alterar a imagem deste MovieClip no click do botão (sendo que as imagens estão na Library) usando ActionScript 3.0?*** Obs: Moderadores, por favor, movam para o fórum principal, acabei clicando acidentalmente no link do sub-forum e não percebi na hora de enviar o post. Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Junho 13, 2007 como o AS só trabalha com classes, você deve criar o mc(como uma instancia) e adiciona-lo no palco //mc_na_library é o nome do linkage na bibliotecavar nomeMC = new mc_na_library()//esse comando adiciona o nome movieClip no palcoaddChild(nomeMC) dá uma lida aqui: http://livedocs.adobe.com/flex/201/langref/migration.html Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Junho 13, 2007 Mais uma dúvida, como eu associo os botões de minha animação à um event handler (click) e codifico?Antigamente bastava selecionar o botão, ir até o painel de Actions e colocar:on (Press){...}E agora, como ficou? Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Junho 13, 2007 não tem como colocar o codigo direto no botão, agora só no frame function funcaoPress(event:MouseEvent) { //ações}nomeBotao.addEventListener(MouseEvent.CLICK, funcaoPress); da uma lida aqui tb http://www.mxstudio.com.br/views.tutorial....=3&aid=1113 Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Junho 14, 2007 Certo, uma coisa que não estou entendendo nos tutoriais, é como eu posso associar a animação à um arquivo de classe separado. Inclusive fica a dúvida, é uma boa prática separar os arquivos com as classes da animação?Com eu associo o arquivo da classe EventHandlers (a ser criada por mim) à minha animação para que possa usar o addEventListener?Poderia fazer simplesmente: nomeBotao.addEventListener(MouseEvent.CLICK, NomePacote.NomeClasse.funcaoPress);???No AS3, pra mim poder usar uma função dentro de uma classe eu tenho obrigatoriamente que instanciar um objeto dessa classe? Existe o conceito de classe estática (static)? Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Junho 14, 2007 é uma boa prática separar os arquivos com as classes da animação?sim, por uma questão de organização, e para re-aproveitamento do códigocom eu associo o arquivo da classe EventHandlers (a ser criada por mim) à minha animação para que possa usar o addEventListener?Poderia fazer simplesmente:nomeBotao.addEventListener(MouseEvent.CLICK, NomePacote.NomeClasse.funcaoPress);usando o comando import antes, é possivel import NomePacote.NomeClasse; No AS3, pra mim poder usar uma função dentro de uma classe eu tenho obrigatoriamente que instanciar um objeto dessa classe? Existe o conceito de classe estática (static)?sim ele trabalha com classes estaticasdetalhado Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Junho 15, 2007 Eder, o código que você me passou na primeira resposta é para adicionar um MovieClip ao palco, no meu caso eu tenho 6 Bitmaps em minha Library em que eu queria adiciona-los no MovieClip que já está no palco.Estou com o seguinte código: import flash.display.BitmapData;function AlterarImagem(Imagem:Bitmap) { mcMain.addChild(Imagem);}function btnBackground1_Click(event:MouseEvent){ AlterarImagem(new Easter());}btnBackground1.addEventListener(MouseEvent.CLICK,btnBackground1_Click); O método AlterarImagem deverá receber o objeto do Bitmap que está na Library e será exibido dentro do MovieClip principal, que já está no palco.Como faço isso?Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Junho 18, 2007 olha como fica :wacko: import flash.display.BitmapData;import flash.utils.*;function AlterarImagem(Imagem:MovieClip) {var novaClasse:Class = getDefinitionByName(getQualifiedClassName (Imagem)) as Class;var instance:Object = new novaClasse();mcMain.addChild(DisplayObject(instance));}function btnBackground1_Click(event:MouseEvent){AlterarImagem(new teste());}btnBackground1.addEventListener(MouseEvent.CLICK,btnBackground1_Click); o objeto nesse caso é um movieClip, estou vendo como funcionar com bitmapData, não esta funcionando apenas trocar o tipo, de MovieClip para Bitmapdata Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Junho 22, 2007 Não consegui fazer funcionar.Criei um novo MovieClip a partir do Bitmap, usei o Linkage, daí ele passa pelo código sem problemas, mas nada é exibido no mcMain, nem se eu usar só addChild sem informar o "container". Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Junho 22, 2007 Consegui utilizando a classe Loader, mas quando faço o mcMain.addChild, ele (o mcMain) é redimensionado. Como posso redimensionar a imagem antes de adicionar ao mcMain ou fixar o tamanho do mcMain?Já tentei alterar as propriedades width e height de meu objeto loader, mas sem sucesso. Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Junho 22, 2007 para alterar as propriedades naum use o "__" antes do nome mc.width=100mc.height=100 se naum for posta o código q você ta usando Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Junho 22, 2007 Tentei assim:loader.width = mcMain.width;loader.height = mcMain.height;o mcMain já possui um tamanho especificado no stage pelo fato de ter sido posicionado visualmente e não por programação. Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Junho 22, 2007 por acaso você esta colocando essas 2 linhas dentro do evento Event.COMPLETE do objeto loader? se for, não seria assim, pois o tamanho de mcMain ja foi alterado pois ele ja carregou o mc externo, voce teria que pegar as propriedades antes de carregar e atribui-las depois , assim: var lar=mcMain.widthvar alt=mcMain.heightvar carregador:Loader = new Loader();function onComplete(event:Event):void { var mc = event.target.content mc.width = lar mc.height = alt}carregador.addEventListener(Event.COMPLETE, onComplete); Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Junho 22, 2007 Ainda não funcionou....fui pelo Debug e ele parece não estar executando a função onComplete.import flash.display.BitmapData;var loader:Loader = new Loader();var urlReq:URLRequest;var largura:Number = mcMain.width;var altura:Number = mcMain.height;function AlterarImagem(url:String):void { urlReq = new URLRequest(url); loader.load(urlReq); mcMain.addChild(loader);}function onComplete(event:Event):void { var mc = event.target.content; mc.width = largura; mc.height = altura;}function btnBackground1_Click(event:MouseEvent){ AlterarImagem("easter.jpg");}btnBackground1.addEventListener(MouseEvent.CLICK,btnBackground1_Click);loader.addEventListener(Event.COMPLETE, onComplete); Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Junho 23, 2007 muda essa linha loader.addEventListener(Event.COMPLETE, onComplete); para isso loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Junho 25, 2007 Funcionou brother.Brigadão! Compartilhar este post Link para o post Compartilhar em outros sites