Hello to all,
I need help trying to make my box react to the mouse. I've tried the
code below in different setups (grids, grids within object container
3d etc. you name it) but
no matter what I do I get no response from my box :( Can anybody help
package
{
import away3d.containers.ObjectContainer3D;
import away3d.containers.View3D;
import away3d.core.base.Object3D;
import away3d.events.MouseEvent3D;
import away3d.lights.PointLight;
import away3d.materials.ColorMaterial;
import away3d.primitives.Cube;
//import com.greensock.TweenLite;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
[SWF(width="1600", height="900", frameRate="60")]
public class MouseEventsTest extends Sprite
{
private var view:View3D;
private var box:Cube;
private var SW:Number;
private var SH:Number;
public function MouseEventsTest()
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.EXACT_FIT;
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE,
onAddedToStage);
SW = stage.stageWidth;
SH = stage.stageHeight;
init();
}
private function init():void
{
var light1:PointLight, light2:PointLight,
light3:PointLight;
// View
view = new View3D();
addChild(view);
view.width = SW;
view.height = SH;
view.backgroundColor = 0xfeadea;
// Lights
light1 = new PointLight();
light2 = new PointLight();
light3 = new PointLight();
light1.color = light2.color =
light3.color = 0xFFFF99;
light1.diffuse = light2.diffuse =
light3.diffuse = 100;
// Lights positioning
light1.x = SW/2;
light2.x = SW - ((SW/3) * 2) ;
light3.x = SW - (SW/3);
light1.y = light2.y = light3.y = 600;
light1.z = light2.z = light3.z = 600;
// Add lights
view.scene.addChild(light1);
view.scene.addChild(light2);
view.scene.addChild(light3);
// Add box
box = new Cube(new ColorMaterial(0xff0000), 300, 300,
300);
box.mouseEnabled = true;
view.scene.addChild(box);
box.material.lights = [light1, light2, light3];
box.addEventListener(MouseEvent3D.ROLL_OVER,
onBoxRollOver);
box.addEventListener(MouseEvent3D.ROLL_OUT,
onBoxRollOut);
// Add Render Loop
addEventListener(Event.ENTER_FRAME, onEnterFrame);
//addEventListener(Event.RESIZE, onResize);
}
private function onBoxRollOver(e:MouseEvent3D):void {
var o:Cube = Cube(e.object);
//TweenLite.to(o, 1, {scaleX: 3, scaleY: 3});
o.scaleX = o.scaleY = o.scaleZ = 2;
}
private function onBoxRollOut(e:MouseEvent3D):void
{
var o:Cube = Cube(e.object);
//TweenLite.to(o, 1, {scaleX: 1, scaleY: 1});
o.scaleX = o.scaleY = o.scaleZ = 1;
}
/*private function onResize(e:Event):void
{
view.width = SW = stage.stageWidth;
view.height = SH = stage.stageHeight;
}*/
private function onEnterFrame(e:Event):void {
//box.rotationY += .5;
view.render();
}
}
}