..:: MX Studio Fóruns ::..: Rotação de Objetos [RESOLVIDO] - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Rotação de Objetos [RESOLVIDO]

#1 User is offline   Gui Mello 

  • Group: Membros
  • Posts: 5
  • Joined: 22-August 11

Posted 23 August 2011 - 01:34 PM

Bom dia galera, sou iniciante e preciso de uma grande ajuda..
Faço matemática e preciso fazer um pequeno software para o ensino de geometria plana.
Já está quase pronto, mas falta um detalhe que não tenho a menor ideia de como fazê-lo
Tenho o flash mx instalado.
vou inserir vários objetos no palco e preciso que ele sejam girados 90 graus [para qualquer sentido] quando clico com o mouse e uma tecla em conjunto,
depois disso esse objeto será arrastado até outra parte do palco.
O problema é que não sei como fazer ele girar...

Será que alguém pode me ajudar? estou desesperado e preciso fazer isso,
Desde já agradeço!

0

#2 User is offline   RONYTORRES 

  • Group: Moderadores
  • Posts: 385
  • Joined: 07-December 06

Posted 24 August 2011 - 11:17 AM

Explica melhor, você quer que ele gire para qualquer sentido, quando clica com o mouse nele ou em outro objeto?
Isso ficou meio confuso.

Para rotacionar um movieClip, utilize a propriedade rotation, como no exemplo abaixo:


my_mc._rotation = 90;


0

#3 User is offline   Gui Mello 

  • Group: Membros
  • Posts: 5
  • Joined: 22-August 11

Posted 29 August 2011 - 01:11 PM

View PostRONYTORRES, on 24 August 2011 - 11:17 AM, said:

Explica melhor, você quer que ele gire para qualquer sentido, quando clica com o mouse nele ou em outro objeto?
Isso ficou meio confuso.

Para rotacionar um movieClip, utilize a propriedade rotation, como no exemplo abaixo:


my_mc._rotation = 90;




Tipo Assim..

Vou criar vários objetos (que ficarão soltos no palco)
Eles serão movidos para outra área do palco
Mas para aumentar a dificuldade dos alunos, alguns objetos poderão ser girados (no caso 90º)
Daí preciso de um código que os faça girar, mas não em clique comum,
pois só o clique do mouse servirá para arrastá-lo
preciso de um código que seja combinado com alguma tecla (por ex. Alt+clique)

Será que consegues me ajudar?
Obrigado
0

#4 User is offline   Rodrigo Pixel 

  • Group: Moderadores
  • Posts: 1279
  • Joined: 07-May 07

Posted 29 August 2011 - 02:03 PM

Segue um exemplo em AS3:

No stage tem apenas 3 mcs com nomes de instância: mc1, mc2, mc3. Todos estão cadastrados em um array pra usar loop for e aplicar eventos de mouse etc.

Para girar objeto:
Passe o mouse sobre objeto, segure a tecla ctrl e utilize scroll do mouse para girar.


AS3:
import flash.ui.Keyboard;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;


/****************************
 * VARIABLES
 ***************************/
 
var girar:Boolean = false; //esse valor só fica true quando a tecla "ctrl" é pressionada
var mcList:Array = [mc1, mc2, mc3]; //cadastra aqui todos os nomes de instâncias de movieclip que etsiver no stage


//COMEÇA AQUI!
init();



/****************************
 * EVENTS
 ***************************/

//eventos do teclado aplicado ao stage pra saber quando foi pressionado e liberado uma tecla
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);



/****************************
 * FUNCTIONS
 ***************************/

//começa aqui
function init():void
{
	addEvent(mcList); //adiciono evento de mouse pra todos objetos da lista
}

//aplica eventos de mouse em cada objeto da lista de movieclips
function addEvent(list:Array):void
{
	var mc:MovieClip; //movieclip atual da lista
	var len:uint = list.length; //quantidade de objetos da lista
	
	//loop...
	for(var i:uint=0; i<len; ++i)
	{
		mc = MovieClip(list[i]); //cast, certifica que o objeto da lista array será do tipo movieclip
		mc.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel); //quando usar scroll
		mc.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); //quando pressionar o mouse
		mc.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); //quando soltar a tecla do mouse
		mc.buttonMode = true; //muda cursor do mouse para "mão".
	}
}


function onMouseDown(e:MouseEvent):void
{
	var mc:MovieClip = MovieClip(e.currentTarget); //pega movieclip atual
	
	mc.startDrag(); //começa arrastar objeto
	addChild(mc);  //deixa na frente  dos outros quando arrastado
}

function onMouseUp(e:MouseEvent):void
{
	var mc:MovieClip = MovieClip(e.currentTarget); //pega movieclip atual
	mc.stopDrag(); //para de arrastar objeto
}

function onMouseWheel(e:MouseEvent):void
{
	var mc:MovieClip = MovieClip(e.currentTarget); //pega movieclip atual
	
	//se girar == true, então pode girar objeto
	if(girar)
		mc.rotation += e.delta*5; //força do giro scroll x 5 pixels
}

function onKeyDown(e:KeyboardEvent):void
{
	//se for a tecla ctrl que está presisonada
	if(e.keyCode == Keyboard.CONTROL)
		girar = true; //pode girar
}

function onKeyUp(e:KeyboardEvent):void
{
	//se foi a tecla ctrl que foi liberada
	if(e.keyCode == Keyboard.CONTROL)
		girar = false; //não gira
}


Arquivo CS4:
http://www.mediafire...96ccnnanxi7cjd9


Abraço.
0

#5 User is offline   Gui Mello 

  • Group: Membros
  • Posts: 5
  • Joined: 22-August 11

Posted 02 September 2011 - 03:39 AM

Bah, Rodrigo

Isso me ajudou muito, obrigado mesmo!!

Abraço

Gui Mello
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)