0
点赞
收藏
分享

微信扫一扫

利用上面的两个包做的一个不成功的案例

刘员外__ 2023-01-07 阅读 114


<pre name="code" class="html">package
{
import com.greensock.TweenLite;

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;

import away3d.containers.View3D;
import away3d.entities.Mesh;
import away3d.materials.ColorMaterial;
import away3d.materials.TextureMaterial;
import away3d.primitives.CubeGeometry;
import away3d.textures.BitmapTexture;
import away3d.utils.Cast;

import crawlingtosea.algorithms.bitmap.Slice;
import crawlingtosea.events.LoaderEvent;
import crawlingtosea.loaders.LoaderBitmap;
import crawlingtosea.loaders.LoaderBitmapQueue;
import crawlingtosea.methods.BitmapCombine;

public class awaytest extends Sprite
{

//private var view:View3D;

private var loader:LoaderBitmapQueue;
private var bitmapAdress:Array=["asset/p1.jpg","asset/p2.jpg","asset/p512.jpg","asset/p1024.jpg"];
private var cube:Mesh;

private var view:View3D;

private var cubeArr:Array;
public function awaytest()
{
//范例:
view = new View3D();
view.z = 100;
view.x=-100;
view.y=100;

//View3D实例必须被添加到舞台上才能正确生效
view.backgroundColor=0xffffff;
view.antiAlias=8;
stage.addChild(view);
view.width=stage.width;
view.height=stage.height;

//创建一个长宽高都为500的立方体数据
/*var cubeGeometry:CubeGeometry = new CubeGeometry(500, 500, 500);
//创建一个单色的贴图(材质)
var cubeMaterial:ColorMaterial = new ColorMaterial(0xFF0000);
//创建一个可视的Mesh对象,并设置形状数据和贴图
var cubeMesh:Mesh = new Mesh(cubeGeometry, cubeMaterial);
//将mesh添加到舞台上
view.scene.addChild(cubeMesh);

//移动风景中的物体
//cubemesh.z += 100;

//移动镜头,或是说移动你的眼睛....
view.z = 100;


*/

//initCube(null);

loader=new LoaderBitmapQueue(bitmapAdress);
loader.start();
loader.addEventListener(LoaderEvent.QUEUELOADER_COMPLETED,onQueue);


}

protected function onQueue(event:LoaderEvent):void
{
// TODO Auto-generated method stub
var bitmap4Data:Array=loader.queueData;


var slice_img1:Slice=new Slice(bitmap4Data[0]);
var slice_img2:Slice=new Slice(bitmap4Data[1]);
var slice_img3:Slice=new Slice(bitmap4Data[2]);
var slice_img4:Slice=new Slice(bitmap4Data[3]);

slice_img1.startAISlice(3,4);
slice_img2.startAISlice(3,4);
slice_img3.startAISlice(3,4);
slice_img4.startAISlice(3,4);

var bddata:Array=[];
for(var r:int=0;r<12;r++){
bddata.push(new Array);

}

for(var k:int=0;k<12;k++){
bddata[k].push(slice_img4.bitmapDataArray[k]);
bddata[k].push(slice_img2.bitmapDataArray[k]);
bddata[k].push(slice_img1.bitmapDataArray[k]);
bddata[k].push(slice_img2.bitmapDataArray[k]);
bddata[k].push(slice_img3.bitmapDataArray[k]);
bddata[k].push(slice_img4.bitmapDataArray[k]);
}


var bcArr:Array=[];

for(var q:int=0;q<12;q++){

bcArr.push(new BitmapCombine(256,256));
}
var bitmapCombineData:Array=[];
for(var p:int=0;p<12;p++){

BitmapCombine(bcArr[p]).combine(bddata[p]);
bitmapCombineData.push(BitmapCombine(bcArr[p]).bitmapData);
}

cubeArr=[];
for(var b:int=0;b<12;b++)
{

cubeArr.push(new Mesh(new CubeGeometry(256,256,256),new TextureMaterial(Cast.bitmapTexture(bitmapCombineData[b]))));


}


//排列坐标
for(var m:int=0;m<3;m++)
{
for(var n:int=0;n<4;n++)
{
trace(n+m*3);
var p=n+m*3;
var t=11-(n+m*3);
cubeArr[p].x=n*256;
cubeArr[t].y=m*256;
view.scene.addChild(cubeArr[n+m*4]);

}


}

stage.addEventListener(Event.ENTER_FRAME,update);
//var b1:BitmapCombine=new BitmapCombine(256,256);
//b1.combine(b1data);
//initCube(b1.bitmapData);
//addChild(new Bitmap(b1.bitmapData));
//trace(b1.bitmapData.height);
}

protected function initCube(bd:BitmapData):void{
var cubeData:CubeGeometry=new CubeGeometry(32,32,32,1,1,1,true);
var bitmapMaterial:TextureMaterial=new TextureMaterial(new BitmapTexture(bd));
cube=new Mesh(cubeData,bitmapMaterial);
trace("here");


view.scene.addChild(cube);
stage.addEventListener(Event.ENTER_FRAME,update);


}

protected function loadCompleted(event:LoaderEvent):void
{
// TODO Auto-generated method stub
//var cubeData:CubeGeometry=new CubeGeometry(400,400,400,1,1,1,true);
//var bitmapMaterial:TextureMaterial=new TextureMaterial(Cast.bitmapTexture(event.target.data));
//cube=new Mesh(cubeData,bitmapMaterial);
//view.scene.addChild(cube);


//var bc:BitmapCombine=new BitmapCombine(256,256);
//var slice:Slice=new Slice(loader.bitmapData);

//slice.startAISlice(3,2);

// bc.combine(slice.bitmapDataArray);

// var bt:Bitmap=new Bitmap(bc.bitmapData);
//addChild(bt);

//stage.addEventListener(Event.ENTER_FRAME,update);
}

protected function update(event:Event):void
{
// TODO Auto-generated method stub
view.render();
//cube.rotationY++;

for(var i:int=0;i<cubeArr.length;i++){


//TweenLite.to(cubeArr[i],3,{z:1000});
cubeArr[i].rotationY++;
}
}
}
}



举报

相关推荐

0 条评论