Ir para conteúdo

POWERED BY:

Arquivado

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

simas

movimentar background

Recommended Posts

Olá tenho a seguinte situação.

 

Tenho um movie clip (boneco) que já se movimenta com o mouse ou o teclado.

 

Mas eu coloquei uma foto no fundo como paisagem, Esta imagem é bem maior

que o palco e eu gostaria de qdo eu movimentar o movie clip(boneco) pelo mouse ou

teclado esta imagem de fundo também se movimentasse.

 

Sei que tenho que colocar esta imagem de fundo tb como movie clip, porém não sei como

colocar no action script pra identificar que a imagem de fundo tem q se movimentar tanto pra

direita ou esquerda, baixo e em cima a depender do movie clip (boneco).

 

Segue o código que coloquei para o boneco se movimentar com o mouse ou teclado, este action esta no meu movie clip (boneco)

 

on (press) {
	//this.startDrag();
	this.startDrag(false,120,0,900,383);// x esquerda, topo, direita, baixo
	Mouse.hide();
	

}
on (release, releaseOutside) {
	this.stopDrag();
	Mouse.show();

}

onClipEvent (enterFrame) {
	if (_y<380) {
		gotoAndPlay(2); // aqui eu mudo o efeito do meu boneco a depender da sua posição Y
	} else {
		gotoAndPlay(1);

	}
}


// para o teclado



onClipEvent (enterFrame) {
	if (Key.isDown(Key.RIGHT)) {
		this._x = _x+10;
				if (_x>900) {
			_x = 900;
		}

	}
	if (Key.isDown(Key.LEFT)) {
		if (_y<380) {
			gotoAndPlay(3);
			this._x = _x-10;
			
			


		} else {
			gotoAndPlay(1);
			this._x = _x-10;
			

		}
		
		if (_x<120) {
			_x = 120;
			
		}

	}
	if (Key.isDown(Key.UP)) {
		this._y = _y-10;
		if (_y<19) {
			_y = 19;
			
		}
	}
	if (Key.isDown(Key.DOWN)) {
		this._y = _y+10;
		if (_y>383) {
			_y = 383;
			
		}
	}
}

 

Desde já, agradeço as ajudas.

valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a posição do mouse com um onEnterFrame... pegando o x e o y do mouse com _xmouse _ymouse...

 

E verifique a posição anterior dele... em relação a cada 1......

 

Vai ter que fazer pelo menos 8 if else

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a posição do mouse com um onEnterFrame... pegando o x e o y do mouse com _xmouse _ymouse...

 

E verifique a posição anterior dele... em relação a cada 1......

 

Vai ter que fazer pelo menos 8 if else

 

Abraços

Se é pra pegar a posição do mouse, use onMouseMove e não onEnterFrame.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O movie clip boneco se movimenta com o teclado também, então eu qcho que pela posição do mouse não vai funcionar corretamente.

 

Acho que tenho que fazer pegando a posição do movie clip (boneco). A depender pra onde o boneco vai, o background, q tb é um movie clip vai se movimentando no sentido ao contrário.

 

Mas não sei como fazer esta programação de um movie clip andar no sentido inverso de um outro movie clip.

Seria mais ou menos isso o meu problema, qdo o boneco ser arrastado pelo mouse para a direita ou pela tecla da direita o meu outro movie clip(background) ir para a esquerda.

 

Este background está atrás do movie clip boneco, o background funciona como uma foto de paisagem que o boneco vai andando por ela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. Remova qualquer código do MovieClip boneco.

2. Instancie o MovieClip background como background e o boneco como boneco. :P

3. Insira o seguinte código no frame onde estão os MovieClips.

var x_boneco:Number = boneco._x;
var y_boneco:Number = boneco._y;
function handleCoordsBoneco():Void {
	/*
	Essa é a parte que manda o background para a posição caminhada inversa do boneco
	*/
	////////////////
	var dif_x:Number = x_boneco - boneco._x;
	var dif_y:Number = y_boneco - boneco._y;
	background._x += dif_x;
	background._y += dif_y;
	////////////////
	
	if (boneco._y < 380) {
		gotoAndPlay(2);
	} else {
		gotoAndPlay(1);
	}
	
	x_boneco = boneco._x;
	y_boneco = boneco._y;
}

boneco.onEnterFrame = function() {
	if (Key.isDown(Key.RIGHT)) {
		if (this._x >= 900) {
			this._x = 900;
		} else {
			this._x += 10;
		}
	}
	
	if (Key.isDown(Key.LEFT)) {		
		if (this._x <= 120) {
			this._x = 120; 
		} else {
			this._x -= 10;
		}
	}
	
	if (Key.isDown(Key.UP)) {
		if (this._y <= 19) {
			this._y = 19; 
		} else {
			this._y -= 10;
		}
	}
	
	if (Key.isDown(Key.DOWN)) {
		if (this._y >= 383) {
			this._y = 383;
		}else{
			this._y += 10;
		}
	}
	
	handleCoordsBoneco();
}
boneco.onPress = function() {
	this.startDrag(false, 120, 0, 900, 383);// x esquerda, topo, direita, baixo
	Mouse.hide();
	
	Mouse.addListener(listener);
}

boneco.onRelease = function() {
	this.stopDrag();
	Mouse.show();
	
	Mouse.removeListener(listener);
}

var listener:Object = new Object();
listener.onMouseMove = function() {
	handleCoordsBoneco();
}

Se sua programação tinha algum outro problema, eu não resolvi.

 

Um abraço e boa sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guto para conseguir esse movimento você precisa primeiramente:

 

Ter uma imagem maior que a tela, transformá-la em MC e instancia-la;

Mapear a posição do mouse e atribui ações diferentes para quando o mouse for maior que a metade da tela (levando a imagem para a esquerda) e o contrário quando o mouse for menor que a metade da tela (levando a imagem para a esquerda);

 

Tente usar o onMouseMove ou mesmo o onEnterFrame, ambos funcionam.

 

Qualquer coisa posta ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jerfs Souza obrigado pela resposta... eu andei fazendo uma pesquisa, sobre isso, e estou montando um site em flash AS2 achei um script chamado "image panning" no site kirupa.com

e estou montando um site para o grupo de pagode do meu irmão, o problema é que esse script faz a ação de se movimentar somente para os esquerda e direita, e o site do jeitomoleque.com.br, ele movimentasse para todos os lados....

 

segue o site que estou desenvolvendo

http://faclubepapel.com/papel_com

 

aguardo retorno

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom então você teria que ver o código como é feito para movimentar para a direita e para esquerda... no caso vai estar usando a posição X do clip...

 

E você deve fazer o mesmo para a posição Y. Assim você vai ter a possibilidade de movimentar para cima e para baixo.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

berseck

 

Segue o Script que eu usei... porem pelos estudos que fiz não consegui movimentar para cima/baixo.

Pois o clip ultrapassa o limite da tela.

 

Segue o script usado:

 

this.onMouseMove = function() {

constrainedMove(bg_mc, 4, 1);

};

function constrainedMove(target:MovieClip, speed:Number, dir:Number) {

var mousePercent:Number = _xmouse/Stage.width;

var mSpeed:Number;

if (dir == -1) {

mSpeed = 1-mousePercent;

} else {

mSpeed = mousePercent;

}

target.destX = Math.round(-((target._width-Stage.width)*mSpeed));

target.onEnterFrame = function() {

if (target._x == target.destX) {

delete target.onEnterFrame;

} else {

target._x += Math.ceil((target.destX-target._x)*(speed/100));

}

};

}

 

Apenas gostaria de saber como fazer para movimentar paras os lados de cima e baixo.

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera valeu pela ajuda...

mais não consegui, a tela ultrapassa, e quando você muda o mouse para esquerda/direita a imagem corre para cima/baixo/esquerda/direita ao mesmo tempo, sendo que ultrapassa o limite da Stage (palco de trabalho)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera valeu pela ajuda...

mais não consegui, a tela ultrapassa, e quando você muda o mouse para esquerda/direita a imagem corre para cima/baixo/esquerda/direita ao mesmo tempo, sendo que ultrapassa o limite da Stage (palco de trabalho)

 

tem jeito de você passar o FLA pra eu dar uma olhada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

tem jeito de você passar o FLA pra eu dar uma olhada?

 

Consegui o que queria, a minha dúvida é só uma outra coisa, tenho um swf externo que carrega no principal, o swf externo tem 2580px de largura, é o pricipal é de 1680px, gostaria que o preload ficasse no centro da stage da swf principal.

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.