package {
import away3d.containers.View3D;
import away3d.core.render.Renderer;
import away3d.materials.BitmapMaterial;
import away3d.primitives.Cube;
import flash.display.Bitmap;
import flash.display.BlendMode;
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.GlowFilter;
[SWF(width="465", height="400", frameRate="60", backgroundColor="#000000")]
public class GlowBox extends Sprite
{
private var view:View3D;
private var cubes:Array;
[Embed (source="assets/yellow.png")]
private var yellowMat:Class;
[Embed (source="assets/red.png")]
private var redMat:Class;
[Embed (source="assets/blue.png")]
private var blueMat:Class;
[Embed (source="assets/green.png")]
private var greenMat:Class;
[Embed (source="assets/pink.png")]
private var pinkMat:Class;
public function GlowBox()
{
cubes = new Array();
view = new View3D({x:232,y:200,renderer:Renderer.BASIC});
addChild(view);
makeCube(pinkMat, 80, 28);
makeCube(greenMat, 120, 21);
makeCube(blueMat, 160, 14);
makeCube(redMat, 200, 7);
makeCube(yellowMat, 240, 0);
this.addEventListener(Event.ENTER_FRAME, refresh);
}
private function makeCube(material:Class, size:Number, rotation:Number):void
{
var myBitmap:Bitmap = new material() as Bitmap;
var mat1:BitmapMaterial = new BitmapMaterial( myBitmap.bitmapData );
var cube:Cube = new Cube({material:mat1,width:size,height:size,depth:size,rotationX:rotation,rotationY:rotation,bothsides:true,ownCanvas:true});
view.scene.addChild(cube);
cubes.push(cube);
cube.blendMode = BlendMode.ADD; }
private function refresh(e:Event):void
{
for(var i:Number = 0; i < cubes.length; i++){
var cube:Cube = cubes[i] as Cube;
cube.rotationX += (i+2)*0.1;
cube.rotationY += (i+2)*0.05;
}
view.render();
}
}
}