TitanX 0 Denunciar post Postado Agosto 13, 2010 Bom Dia Pessoas, estou programando um site e em determinado local preciso fazer um efeito de zoom nas imagens. Pesquisando na net achei o código essencial em AS 2 que faz a imagem rolar dependendo a posição do mouse. O único problema é que a imagem ocupada o palco todo e eu gostaria que ela ficasse em um determinado espaço. No caso meu palco tem 782px de largura por 580px de altura. O MC de destino terá 266.1px de largura e 410.6px de altura. Código sendo utilizado Stage.scaleMode = "noscale"; // //1. -------------------------- Declarar variaveis // //coordenadas para os zeros do stage var zero_x:Number = -(Stage.width-782)/2; var zero_y:Number = -(Stage.height-580)/2; // //stage listener var stageobj:Object = new Object(); Stage.addListener(stageobj); // //variaveis para a velocidade var speedX:Number; var speedY:Number; // //variaveis para o destino var destX:Number; var destY:Number; // //o caminho da imagem var imagem_url:String = "imagem.jpg"; // //preparar o carregamento da imagem var mc_loader:MovieClipLoader = new MovieClipLoader(); var mc_object:Object = new Object(); mc_loader.addListener(mc_object); // // //2. ----------------------- Stage foi redimensionado? // stageobj.onresize = function() { // //atualizar os zeros do stage zero_x = -(Stage.width-782)/2; zero_y = -(Stage.height-580)/2; // //atualizar coords move_photo(mc, 100); }; // // //3. ------------------------------- criar main mc // var mc:MovieClip = this.createEmptyMovieClip("mc", 1); // // //4. ------------------------------ carregar a imagem // function load_clip() { mc_loader.loadClip(imagem_url, mc); } // //iniciar load_clip(); // //5. ---------------------------- a imagem carregou // mc_object.onloadInit = function(img) { // //mc ficou transparente mc._alpha = 0; // //centrar mc mc._x = zero_x-(mc._width/2-Stage.width/2); mc._y = zero_y-(mc._height/2-Stage.height/2); // //o main mc fica opaco gradualmente mc.onEnterFrame = function() { if (mc._alpha>=100) { // //ajustar mc._alpha = 100; // //accionar o Mouse Mouse.addListener(mouse_move); // //remover this.onEnterFrame = null; } else { // //incrementar a opacidade em 10 mc._alpha += 10; } }; // //limpar este metodo this.onloadInit = null; }; // //detectar erro no carregamento mc_object.onloadError = function(img, code, status) { trace(img); trace(code); trace(status); }; // //6. ------------------------------- Mouse foi acionado // var mouse_move:Object = new Object(); // mouse_move.onmousemove = function() { delete this.onEnterFrame; updateAfterEvent(); move_photo(mc, 5); }; // //7. ----------------------------- Mover imagem // function move_photo(mc, speed:Number) { // //calculos speedX = Math.round((xmouse(_xmouse)-zero_x)/Stage.width*100)/100; speedY = Math.round((ymouse(_ymouse)-zero_y)/Stage.height*100)/100; destX = Math.round(-((mc._width-Stage.width)*speedX)); destY = Math.round(-((mc._height-Stage.height)*speedY)); // //loop mc.onEnterFrame = function() { if (this._x != destX) { increaseX = Math.round((destX-this._x+zero_x)*speed)/100; this._x += increaseX; } if (this._y != destY) { increaseY = Math.round((destY-this._y+zero_y)*speed)/100; this._y += increaseY; } if (Math.abs(increaseX)<.5 && Math.abs(increaseY)<.5) { delete this.onEnterFrame; } updateAfterEvent(); }; } // //mouse x function xmouse(n):Number { if (n>zero_x+Stage.width) { return zero_x+Stage.width; } else if (n<zero_x) { return zero_x; } else { return n; } } // //mouse y function ymouse(n):Number { if (n>zero_y+Stage.height) { return zero_y+Stage.height; } else if (n<zero_y) { return zero_y; } else { return n; } } Alguem sabe como fazer a imagem carregar dentro do mc? obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Agosto 13, 2010 Da mesma forma que carrega uma página direto no stage, o movie clip servirá de container (alvo), precisa estar instanciado. Quanto ao tamanho da imagem ser maior, use uma máscara do mesmo tamanho do movie clip. Abs Compartilhar este post Link para o post Compartilhar em outros sites