flash on 2009-6-17
/**
* Copyright murayama333 ( http://wonderfl.net/user/murayama333 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/A95o
*/
package
{
import caurina.transitions.Tweener;
import flash.events.Event;
import flash.events.MouseEvent;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.view.BasicView;
public class Cube33 extends BasicView
{
private var cubeList:Array = []
private var cubeSize:Number = 100;
public function Cube33()
{
camera.y = 800;
camera.x = cubeSize;
for(var i:int = 0; i < 9; i++){
var cube:Cube = createCube(cubeSize);
cube.x = cubeSize * (i % 3)
cube.z = cubeSize * int(i / 3)
cubeList.push(cube);
scene.addChild(cube);
}
// ターゲットを決める
camera.target = cubeList[4];
addEventListener(MouseEvent.CLICK, onClick);
startRendering();
}
private function createCube(size:Number = 200):Cube{
var tileNames:Array = ["front", "back", "top", "bottom", "right", "left"];
var tileColors:Array = [0x0000FF, 0x00FF00, 0xFF0000, 0x00FFFF, 0xFFFF00, 0xFF00FF];
var materialsList:MaterialsList = new MaterialsList();
for(var i:int = 0; i < tileNames.length; i++){
var colorMaterial:ColorMaterial = new ColorMaterial(tileColors[i], 0.7);
materialsList.addMaterial(colorMaterial, tileNames[i]);
}
return new Cube(materialsList, size, size, size);
}
override protected function onRenderTick(event:Event = null):void
{
super.onRenderTick(event);
}
private var moveSpace:Number = 100;
private function onClick(evt:MouseEvent):void
{
for(var i:int = 0; i < cubeList.length; i++){
var moveX:Number = 0;
var moveZ:Number = 0;
if(i % 3 == 2){
moveX = +moveSpace;
}else if(i % 3 == 0){
moveX = -moveSpace;
}
if(int(i / 3) == 2){
moveZ = +moveSpace;
}else if(int(i / 3) == 0){
moveZ = -moveSpace;
}
var cube:Cube = cubeList[i];
Tweener.addTween(cube, {
x:cube.x + moveX,
z:cube.z + moveZ,
time:1,
transition:"easeOutBounce"});
Tweener.addTween(cube, {
rotationX:cube.rotationX + 90,
time:1,
delay:1,
transition:"easeOutBounce"});
Tweener.addTween(cube, {
rotationY:cube.rotationY + 90,
time:1,
delay:2,
transition:"easeOutBounce"});
Tweener.addTween(cube, {
rotationZ:cube.rotationZ + -90,
time:1,
delay:3,
transition:"easeOutBounce"});
Tweener.addTween(cube, {
x:cube.x,
z:cube.z,
time:5,
delay:4,
transition:"easeOutBounce"});
}
}
}
}