Ir para conteúdo

POWERED BY:

Arquivado

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

Mayc Rodrigues

Perspectiva

Recommended Posts

Bom galerinha, segue mais um tutorial que fiz ...

 

B)

 

1- Vamos criar um movieClip, que chamaremos de "ball", dai damos o mesmo nome ao seu linkage.

 

2- Configurando o Stage

Stage.align = "MC";

Stage.scaleMode = "noScale";

3- "fl"(focal length (distancia da visão em relação ao objeto))

var fl:Number = 300;

4- Centralizar o x no meio do Stage

var centerx:Number = Stage.width/2;

5- Centralizar o y no meio do Stage

var centery:Number = Stage.height/2;

6- Assim que iniciar ele manda outros valores para o enterFrame

function onEnterFrame():Void {

6.1- Variavel que recebe a propriedade _xmouse

centerx = _xmouse;

6.2-Variavel que recebe a propriedade _ymouse

centery = _ymouse;

}

7- Criando o loop para repetição e posicionamento dos MovieClips

for (var i:Number = 0; i<30; i++) {

7.1- Variavel que recebe o MovieClip ... chamado por attachMovie

var newBall:MovieClip = attachMovie("ball", "ball"+i, i);

7.2- Atribuindo o MovieClip a uma variavel randomica que o posiciona em qualquer lugar na posição _x

newBall._x = Math.random()*Stage.width;

7.3- Atribuindo o MovieClip a uma outra variavel randomica que o posiciona em qualquer lugar agora na posição _y

newBall._y = Math.random()*Stage.height;

7.4- Variavel para receber os valores iniciais do MovieClip, _x

newBall._startx = newBall._x;

7.5- Variavel para receber os valores iniciais do MovieClip, _y

newBall._starty = newBall._y;

7.6- Agora criando o efeito de 3D, mechendo no eixo "_z"

newBall._z = Math.random()*1000;

7.7- Criando uma escala para o tamanho dos MovieClips

 

7.7.1- Explicando:

Aqui é pura trigonometria, pois é bastante simples para pessoas que trabalham com 3D

uma simples equação para sabe onde está a "camera", que no caso será a posição do Mouse

 

A lógica

- A escala de cada MC recebe o "fl"(focal length (distancia da visão em relação ao objeto))

- Depois é dividade pela a mesma variavel "fl" somada a variavel "_z" de cada MovieClip

newBall.scale = fl/(fl+newBall._z);

7.8- Alternando a propriedade _xscale e _yscale dos MovieClips que recebe um valor de 100 multipicado pelo scale de cada objeto

newBall._xscale = newBall._yscale=100*newBall.scale;

7.9- Alternando a propriedade _alpha dos MovieClips que recebe um valor de 100 multipicado pelo scale de cada objeto

newBall._alpha = 100*newBall.scale;

7.10- Alternando os niveis entre os MovieClips

newBall.swapDepths(Math.round(1000*newBall.scale));

7.11- Atribuindo uma função ao onEnterFrame do MovieClip

newBall.onEnterFrame = ballEF;

}

8- Criando uma função para onEnterFrame citado acima ...

function ballEF():Void {

8.1- Aqui iremos mecher com a variavel de offSet, primeiro a "x" depois a "y"

this.offx = this._startx-centerx;

this.offy = this._starty-centery;

8.2- Agora a propriedade _x recebe o valor da variavel "centerx" somada a variavel "offx" multiplicado pela a escala de cada Objeto

this._x = centerx+this.offx*this.scale;

8.3- A mesma coisa com o _y, só mudando as respectivas propriedades.

this._y = centery+this.offy*this.scale;

}

 

Agora o código completo ...

 

Stage.align = "MC";Stage.scaleMode = "noScale";//var fl:Number = 300;var centerx:Number = Stage.width/2;var centery:Number = Stage.height/2;function onEnterFrame():Void {	centerx = _xmouse;	centery = _ymouse;}for (var i:Number = 0; i<30; i++) {	var newBall:MovieClip = attachMovie("ball", "ball"+i, i);	newBall._x = Math.random()*Stage.width;	newBall._y = Math.random()*Stage.height;	newBall._startx = newBall._x;	newBall._starty = newBall._y;	newBall._z = Math.random()*1000;	newBall.scale = fl/(fl+newBall._z);	newBall._xscale = newBall._yscale=100*newBall.scale;	newBall._alpha = 100*newBall.scale;	newBall.swapDepths(Math.round(1000*newBall.scale));	newBall.onEnterFrame = ballEF;}function ballEF():Void {	this.offx = this._startx-centerx;	this.offy = this._starty-centery;	this._x = centerx+this.offx*this.scale;	this._y = centery+this.offy*this.scale;}
E viva a matemática !!!

 

=)

 

Qualquer dúvida é só perguntar, Ok.

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.