Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TitanX

Imagem deslizar dentro de um MC

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.