📄 3dshudu.as
字号:
package {
import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*;
import org.papervision3d.cameras.*;
import org.papervision3d.materials.*;
import org.papervision3d.objects.*;
import org.papervision3d.scenes.*;
import flash.text.TextField;
import flash.text.TextFormat;
[SWF(backgroundColor="#000000", frameRate="60", width="400", height="400")]
public class T5step2 extends Sprite {
private var container:Sprite;
private var scene:MovieScene3D;
private var camera:Camera3D;
private var length:int=50;
private var offset:int=20;
private var numBDs:Array = new Array();
public function T5step2() {
//背景
var bg:Sprite = new Sprite();
addChild(bg);
bg.graphics.beginFill(0x999999);
bg.graphics.drawRect(0, 0, 400, 400);
bg.graphics.endFill();
//制作数字贴图材质
var tf:TextFormat = new TextFormat();
tf.size = 24;
tf.bold = true;
for(var i:int=0; i<=9; i++){
var numSprite:Sprite = new Sprite(); numSprite.graphics.lineStyle(1);
numSprite.graphics.drawRect(0, 0, length, length);
var numTxt:TextField = new TextField();
numTxt.text = i.toString();
numTxt.setTextFormat(tf);
numSprite.addChild(numTxt);
var bd:BitmapData = new BitmapData(length, length, false, 0xffffffff);
bd.draw(numSprite);
numBDs.push(bd); }
// initialize the objects
init3D();
// add a listener for the 3D loop
addEventListener(Event.ENTER_FRAME, loop3D); }
private function init3D():void{
container = new Sprite();
addChild(container);
container.x = 200;
container.y = 200;
scene = new MovieScene3D(container);
camera = new Camera3D();
camera.z = -2000;
camera.zoom = 10;
camera.focus = 100;
for(var idxX:int=0; idxX<9; idxX++){
for(var idxY:int=0; idxY<9; idxY++){
for(var idxZ:int=0; idxZ<9; idxZ++){
var num:int = (idxX + idxY + idxZ) % 9 + 1;
var cube:DisplayObject3D = new Cube(new BitmapMaterial(numBDs[num]), length, length, length, 1, 1, 1);
cube.x = (idxX-4) * (length+offset);
cube.y = (idxY-4) * (length+offset);
cube.z = (idxZ-4) * (length+offset);
scene.addChild(cube, "cube"+idxX+idxY+idxZ); //cube.container.alpha = 0.9;
}
}
}
}
private function loop3D(event:Event):void{
camera.hover(0, container.mouseX / 20, container.mouseY / 10); scene.renderCamera(camera);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -