<pre name="code" class="html">package
{
import com.greensock.TimelineLite;
import com.greensock.TweenLite;
import com.greensock.easing.Back;
import flash.display.Scene;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import away3d.cameras.Camera3D;
import away3d.containers.View3D;
import away3d.entities.Mesh;
import away3d.materials.TextureMaterial;
import away3d.primitives.CubeGeometry;
import away3d.textures.BitmapTexture;
import crawlingtosea.algorithms.Counter;
import crawlingtosea.algorithms.bitmap.Slice;
import crawlingtosea.events.LoaderEvent;
import crawlingtosea.events.TickEvent;
import crawlingtosea.loaders.LoaderBitmap;
import crawlingtosea.methods.Tick;
[SWF(frameRate="60",width="512",height="512")]
public class awtest extends Sprite
{
private var view:View3D;
private var cube:Mesh;
private var loader:LoaderBitmap;
private var bmpArr:Array;
private var modeArr:Array;
private var arrAdd:Array=["asset/p512.jpg","asset/p2.jpg"];
private var b:Boolean;
public function awtest()
{
//trace(flash.display.LoaderInfo.);
view=new View3D();
stage.addChild(view);
var cam:Camera3D=new Camera3D();
cam.z=-512;
view.camera=cam;
view.backgroundColor=0xFFFFFF;
var tick:Tick=new Tick(Tick.TICK_SETINTERVAL,5000);
tick.addEventListener(TickEvent.TICK,onTick);
b=true;
}
protected function onTick(event:TickEvent):void
{
// TODO Auto-generated method stub
if(view.scene.numChildren!=0){
for(var h:int=0;h<modeArr.length;h++)
{
view.scene.removeChild(modeArr[h]);
trace(h);
}
}
loader=new LoaderBitmap(arrAdd[Counter.Loop(2)]);
loader.start();
loader.addEventListener(LoaderEvent.COMPLETED,onLoaderComplete);
//trace(Counter.Loop(2));
}
protected function onLoaderComplete(event:LoaderEvent):void
{
// TODO Auto-generated method stub
loader.removeEventListener(LoaderEvent.COMPLETED,onLoaderComplete);
var slice:Slice=new Slice(loader.bitmapData);
slice.startSlice(8);
bmpArr=slice.bitmapDataArray;
//trace(bmpArr.length);
modeArr=[];
for(var n:int=0;n<64;n++){
modeArr.push(new Mesh(new CubeGeometry(64,64,64,1,1,1,false),new TextureMaterial(new BitmapTexture(bmpArr[n]))));
}
//trace(modeArr.length);
var p:int=0;
var q:int=0;
for(var i:int=0;i<8;i++){
for(var j:int=0;j<8;j++){
p=63-(j+i*8);
q=j+i*8;
// trace(63-p);
modeArr[q].x=64*j-256+32;
modeArr[p].y=64*i-256+64;
view.scene.addChild(modeArr[p]);
}
}
stage.addEventListener(MouseEvent.CLICK,onClick);
for(var i:int=0;i<64;i++){
//modeArr[i].rotationY+=0.01;
TweenLite.to(modeArr[i],1,{z:1000,rotationX:360,ease:Back.easeIn,onComplete:onC});
}
function onC():void{
for(var i:int=0;i<64;i++){
//modeArr[i].rotationY+=0.01;
TweenLite.to(modeArr[i],1,{z:-512,rotationX:360,ease:Back.easeIn});
}
}
this.stage.addEventListener(Event.ENTER_FRAME,update);
}
protected function onClick(event:MouseEvent):void
{
// TODO Auto-generated method stub
}
protected function update(event:Event):void
{
// TODO Auto-generated method stub
view.render();
}
}
}