使用TargetCamera:
// 将camera锁定住对象mesh
targetCamera = new TargetCamera3D(10, 100, mesh);
targetCamera.z = -1000;
// 给view赋值:新的camera
view.camera = targetCamera;
锁定摄像机视角:
override protected function onPreRender():void
{
sphere1.x = 200*Math.sin(step);
step += 0.1;
target = isLookAt? sphere0 : sphere1;
// flash.display.DisplayObject.tranform.matrix3D.position
// 一个保存显示对象在转换参照帧中的 3D 坐标 (x,y,z) 位置的 Vector3D 对象。
camera.lookAt(target.transform.matrix3D.position);
}
遍历场景中的所有object:
protected override function onPreRender():void
{
// 继承关系 Sphere -> AbstractPrimitive -> Mesh -> Object3D -> flash.display.Sprite
for each (var mesh:Mesh in scene.children) {
mesh.rotationX++;
mesh.rotationY++;
mesh.rotationZ++;
}
}
设置3D剪裁窗口大小:
// 如果你在代码里设置view.width与view.height不会报错,但不会起作用
private var clipping:RectangleClipping;
clipping = new RectangleClipping();
clipping.minX = -400;
clipping.minY = -300;
clipping.maxX = 400;
clipping.maxY = 300;
private var view:View3D;
view = new View3D();
view.clipping = clipping;
设置layer:(同PV3D中的viewportLayer)
// Plane
plane = new Plane(new BitmapFileMaterial("assets/earth.jpg"), 256, 128);
plane.bothsides = true;
plane.rotationX = 45;
plane.y = i*50 - 4*50/2;
scene.addChild(plane);
// Layer
var layer:Sprite = new Sprite();
view.addChild(layer);
// Object3D.layer:An optional layer sprite used to draw into inseatd of the default view.
plane.layer = layer;
// Event
plane.layer.addEventListener(MouseEvent.CLICK, onClick);
private function onClick(event:MouseEvent):void
{
var layer:Sprite = event.target as Sprite;
// 给layer添加滤镜
if(layer.filters.length==0)
layer.filters = [new GlowFilter(0xFF0000, 1, 4, 4, 16, 1)];
else
layer.filters = null;
}
Cast类使用:
// Cast:Helper class for casting assets to usable objects
// Casts the given data value as a bitmapdata object.
// 将一个图片class转化成一个bitmapdata
shadeMaterial = new BitmapMaterial(Cast.bitmap(Shade));
// Casts the given data value as a material object.
// 将一个图片class转化成一个material对象
materialArray = [Cast.material(GreenPaint), Cast.material(RedPaint)];
创建DAE模型的两种方法:
// 方法一
private var collada:Collada;
private var loader:Loader3D;
private var model:Object3D;
collada = new Collada();
collada.scaling = 600;
collada.centerMeshes = true;
loader = new Loader3D();
loader.loadGeometry("assets/chameleon.dae", collada);
loader.addEventListener(Loader3DEvent.LOAD_SUCCESS, onSuccess);
scene.addChild(loader);
private function onSuccess(event:Loader3DEvent):void
{
model = loader.handle;
}
// 方法二
[Embed(source="assets/mario_testrun.dae",mimeType="application/octet-stream")]
private var Charmesh:Class;
private var collada:Collada;
private var model1:ObjectContainer3D;
collada = new Collada();
collada.scaling = 10;
// parseGeometry:Parses 3d file data.
model1 = collada.parseGeometry(Charmesh) as ObjectContainer3D;
model1.materialLibrary.getMaterial("FF_FF_FF_mario1").material = material;
scene.addChild(model1);
DAE模型动画设置:
// 定义骨骼动画
private var skinAnimation:BonesAnimator;
// BonesAnimator 骨骼动画:hold the animation information for a bones animation imported from a collada object
skinAnimation = model1.animationLibrary.getAnimation("default").animation as BonesAnimator;
// 动起来。。。
private function onEnterFrame(event:Event):void
{
// Updates all channels in the animation with the given time in seconds.
skinAnimation.update(getTimer()*2/1000);
}
获取鼠标在3D场景中的坐标:
// scenePosition:The xyz coordinate at which the event occurred in global scene coordinates.
private function onMouseMove(e:MouseEvent3D):void {
position.x = e.scenePosition.x;
position.z = e.scenePosition.z;
}
分享到:
相关推荐
Away3D中文学习资料集锦打包下载 Away3D中文学习资料集锦打包下载 Away3D中文学习资料集锦打包下载 官方翻译, 有基础知识,学习笔记,实例说明 内容有 Away3D 4.0.7。chm 1 -对一个简单类的解释 2 - 视口与场景 3 ...
Away3D 4.1官方开发包,flash 3D开发利器
flash 3D引擎 away3d源码 flash 3D引擎 away3d源码 flash 3D引擎 away3d源码 flash 3D引擎 away3d源码 flash 3D引擎 away3d源码 flash 3D引擎 away3d源码
As3.0+Away3d+as3dmod超炫3D相册 立体感超强3D环形相册 效果:http://blog.csdn.net/he_wen_jian/article/details/21695711
最新away3D 引擎包最新away3D 引擎包最新away3D 引擎包最新away3D 引擎包最新away3D 引擎包最新away3D 引擎包最新away3D 引擎包
Away3D 4.0.7.chm flash3D技术开发手册
完整的代码,可编译运行通过。运用的是Away3D 4.06版本引擎,源码里面有away3d.swc了,引用就可以编译。
Away3D是flash或flex上的一个功能强大且实时的3D引擎,具有快速、高效、API清楚等优点。但是三角型消失的问题让人头疼。away3d世界由:view 视口、scene 场景、camera 摄像机和3D物体四部分组成,也称Away3D的四大...
#将Away3D用于OpenFL的示例 ## Introduction Away3D for Flash是Flash Away3D引擎的端口,可为OSX,Windows,iOS,Android和其他...lime create away3d:Basic_View /destinationFolder // To install the example to
Away3D 基础教程 Flash 3d 开发必备
Away3D中文api
Away3D是Flash的3D引擎,这是Away3D 3.6 Cookbook 教程源码
自己制作的away3d3.6的swc文件方便大家下载使用。away3d的官网上面没有swc文件提供下载
《Away3D傻瓜系列教程3 — 灯光和投影》示例代码,教程地址:http://www.chenlinsheng.com/?p=2109
away3d4.1 开源代码 很方便的啦啦啦
away3D引擎物体鼠标拖动类,拖动3D物体
Flash/Flex上强大的3D引擎Away3D的帮助文档 版本3.6.0 英文版
Away3D的APIAway3D的APIAway3D的API
away3d4.1 chm文档资料由梦天整理
away3d