Mouse EventsDownload Example

// Class Main.as
package  
{
	import flare.basic.*
	import flare.events.*
	import flare.materials.*
	import flare.primitives.*
	import flash.display.*
	import flash.events.*
	
	public class Main extends Sprite
	{
		private var scene:Scene3D
		
		public function Main() 
		{
			stage.quality = "medium"
			
			// creates the scene.
			scene = new Scene3D( this )
			
			// creates sphere and cube.
			var sphere:Sphere = new Sphere( "mySphere" )
				sphere.x = 10
				
			var cube:Cube = new Cube( "myCube" )
				cube.x = -10
				
			// add objects to scene.
			scene.addChild( sphere )
			scene.addChild( cube )
			
			// add objects listeners.
			sphere.addEventListener( MouseEvent3D.CLICK, mouseClickEvent )
			sphere.addEventListener( MouseEvent3D.MOUSE_OUT, mouseOutEvent )
			sphere.addEventListener( MouseEvent3D.MOUSE_OVER, mouseOverEvent )
			cube.addEventListener( MouseEvent3D.CLICK, mouseClickEvent )
			cube.addEventListener( MouseEvent3D.MOUSE_OUT, mouseOutEvent )
			cube.addEventListener( MouseEvent3D.MOUSE_OVER, mouseOverEvent )
			
			// add scene update listener.
			scene.addEventListener( Scene3D.UPDATE_EVENT, updateEvent )
			
			// set camera position and orientation.
			scene.camera.setPosition( 30, 30, -30 )			
			scene.camera.lookAt( 0, 0, 0 )
		}
		
		private function updateEvent(e:Event):void 
		{
			scene.rotateY( 1 )
		}
		
		private function mouseClickEvent(e:MouseEvent3D):void 
		{
			// change the material.
			
			var randomColor:int = 0xffffff * Math.random()
			
			var material:ShadedColorMaterial = new ShadedColorMaterial( "myMaterial", 0x000000, randomColor )
			
			e.target.setMaterial( material )
		}
		
		private function mouseOverEvent(e:MouseEvent3D):void 
		{
			// change scale.
			
			e.target.setScale( 1.2, 1.2, 1.2 )
		}
		
		private function mouseOutEvent(e:MouseEvent3D):void 
		{
			// reset to original scale.
			
			e.target.setScale( 1, 1, 1 )
		}
	}
}