inx 4 Denunciar post Postado Setembro 17, 2009 http://imasters.com.br/artigo/4110/flash/componente_de_zoom_utilizando_as_classes_bitmapdata_e_matrix/ Li e reli.. Mais eu não entendo.. +S eu queria que aonde eu colocasse o componente ficasse o zoom.. Mais eu boiei legal nesse tuto.. Alguém tem algum outro exemplo ou pode me explicar como fazer o zoom quando a lupa estiver sobre o mc? http://forum.imasters.com.br/public/style_emoticons/default/cry.gif To apanhando faz dois dias. Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Setembro 17, 2009 resumindo as partes importantes do código, para fazer a "copia" do movieClip (vai ficar do mesmo tamanho que o original) /*Import*/ import flash.display.BitmapData; import flash.geom.Matrix; var zoomMatrix:Matrix= new Matrix(); var bmp:BitmapData; //Atalho para o próximo depth var level:Number = this.getNextHighestDepth(); //Criação do objeto bmp, instância da classe BitmapData bmp = new BitmapData(alvo_mc._width, alvo_mc._height, false, 0xFFFFFFFF); //Anexando o objeto bitmap criado ao _root _root.attachBitmap(bmp, level); //Desenha a imagem ou MovieClip na imagem de destino bmp.draw(alvo_mc, zoomMatrix); agora é só aumentar, você pode fazer com o matrix.scale(), sendo o valor 1 = 100% do tamanho // aumenta em 200% var tamZoom = 2 zoomMatrix.scale(tamZoom, tamZoom ); bmp.draw(alvo_mc, zoomMatrix); com isso ele só mostra o canto superior esquerdo (x=0, y=0) para pegar outra posição, é só mexer com o Matrix.tx e Matrix.ty // aumenta em 300% var tamZoom = 3 zoomMatrix.scale(tamZoom, tamZoom ); // copia a partir do meio da figura original zoomMatrix.tx = -(alvo_mc._width * tamZoom ) / 2; zoomMatrix.ty = -(alvo_mc._height * tamZoom ) / 2; bmp.draw(alvo_mc, zoomMatrix); agora é só adaptar para o que você []´s Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Setembro 18, 2009 Ficou beleza agora hein inx com a explicação do Eder. Abs Compartilhar este post Link para o post Compartilhar em outros sites
inx 4 Denunciar post Postado Setembro 18, 2009 Parece que sim kisuke.. Agora deu pra entende... Essa semana eu vou voltar ao trampo que eu necessito disso e posto aki. +S ^^ Brigadão! Compartilhar este post Link para o post Compartilhar em outros sites
inx 4 Denunciar post Postado Setembro 26, 2009 EEEeee.. eu tava tao feliz... juro.. porém.. surgiu o desafio de fazer em as3.. e sinceramente? to morto.. deve ter algo de diferente no eskema. =S olha só.. eu tenho um site com layout liquido.. e sobre o topo de todas as camadas possuo o arquivo. distorcer. distorcer é um cara legal.. que pega a partir do _y:344 do layout liquido... o zoom deveria ficar certinho aonde está o distorcer.. porém o zoom é um garoto muito mal, ele só funciona no TL..ou seja.. no topo e a esquerda é a unica coisa que ele mostra dentro do distorcer.. sendo que o distorcer deveria mostrar o que está embaixo dele. var sw:Number=stage.stageWidth; var sh:Number=stage.stageHeight; var area:BitmapData=new BitmapData(sw,sh); var imagem:Bitmap=new Bitmap(area); var zoom:Matrix = new Matrix(); zoom.scale(1.1,1.1); distorcer.addChild(imagem); distorcer.addEventListener(Event.ENTER_FRAME, _zoom); function _zoom(event:Event):void { area.draw(root, zoom); zoom.ty = 344;//axo q ta aki o b.o. não entendi esse calculo.. zoom.tx = sw;//axo q ta aki o b.o. não entendi esse calculo.. } EDITADO: Esqueci de dizer que distorcer vai mostrar o que está em baixo dele(ou seja a root); Compartilhar este post Link para o post Compartilhar em outros sites