Ir para conteúdo

POWERED BY:

Arquivado

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

leandroguimaraes

[Resolvido] Diferença entre "x" e "_x"

Recommended Posts

Olá pessoal, eu realmente detesto fazer perguntas que possam parecer muito banais, porém, eu estava tentando analisar um código que achei, usado para aplicar efeito de gravidade a uma bolinha e fiquei com uma dúvida muito grande com relação a diferença entre "x" e "_x", no código. Fucei todo o help do flash e mais alguns fóruns e não achei nenhuma resposta que me satisfizesse, pois, ao que me parece, as duas coisas são iguais, apensa de que, testando, fiz um movieclipe com um retangulo inserido e usei primeiramente o "_x" e depois o "x" para mudar a sua posição no stage.

 

Teste 1:

retangulo_mc._x = 10;

 

Teste 2:

retangulo_mc.x = 10;

 

Após isso, notei que apenas o "_x" funciona. Nesse código que estava analisando, o cara usa o "x" para obter a posição da bolinha no instante anterior ao atual. Será que alguem poderia me dar uma ajudinha apenas para entender a diferença entre o "x" e o "_x"? No help do flash eu achei as duas definições, porém apenas a "_x" consta como "_x (MovieClip._x property)", a referente ao "x" consta como "x (Rectangle.x property)". Bom, sinto que estou bastante perdido, agradeço demais as pessoas que puderem me ajudar nessa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas veja bem, eu uso o flash 8 e no help do programa (referente a linguagem AS 2) consta um tópico a respeito de "x":

 

x (Rectangle.x property)

public x : Number

 

The x coordinate of the top-left corner of the rectangle. Changing the value of the x property of a Rectangle object has no effect on the y, width, and height properties.

 

The x property is equal to the left property.

 

Availability: ActionScript 1.0; Flash Player 8

 

Então acho que mesmo no AS 2, esse "x" tem algum tipo de função, que me parece idêntica ao a do "_x", porém, os testes mostram que há uma diferença.

 

Só para exemplificar como o "x" foi usado no código que estou analizando, vou colar ele aqui, pra deixar mais claro.

 

onClipEvent (enterFrame) 
{
	/*pega a ultima posição ocupada pela bolinha
	* no instante anterior ao corrente
	*/
	oldx = x; 
	oldy = y; 
	
	/* armazena a atual posição da bolinha na tela*/
	x = this._x;
	y = this._y;
	
	/* Verifica se o usuário está arrastanto a bolinha*/
	if (arrastando)
	{
		/*pega a variação de posição da bolinha*/
		vx = (x-oldx); 
		vy = (y-oldy);
	} 
	else 
	{
		vy += gravidade; //aplica o efeito de gravidade
		x += (vx/10); //aplica a velocidade em X
		y += (vy/10); //aplica a velocidade em Y
		
		/*Verificação de colisão com as bordas do Stage*/
		if (y<raio) //SUPERIOR
		{
			y = raio;
			vx *= restituicao;
			vy *= -restituicao;//muda o sentido da velocidade em Y
		}
		if (y>(_root.maxHeight-raio)) //INFERIOR
		{
			y = _root.maxHeight-raio;
			vx *= restituicao;
			vy *= -restituicao;
		}
		if (x<raio) //ESQUERDA
		{
			x = raio;
			vx *= -restituicao;
			vy *= restituicao;
		}
		if (x>(_root.maxWidth-raio)) //DIREITA
		{
			x = _root.maxWidth-raio;
			vx *= -restituicao;
			vy *= restituicao;
		}
		/* atualiza a posição da bolinha*/
		this._x = x;
		this._y = y;
	}
}

um abraço

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.