使用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是一款强大的开源Flash 3D引擎,用于在Adobe Flash平台上创建高质量的3D图形和交互式应用程序。它的最新版本4.1 Alpha是开发者们手中的一个强大工具,旨在为Web上的3D体验提供高性能和易用性。下面将详细介绍...
Away3D中文学习资料集锦打包下载 Away3D中文学习资料集锦打包下载 Away3D中文学习资料集锦打包下载 官方翻译, 有基础知识,学习笔记,实例说明 内容有 Away3D 4.0.7。chm 1 -对一个简单类的解释 2 - 视口与场景 3 ...
《Away3D基础教程》是一本专注于Flash 3D开发的资源集合,旨在帮助开发者掌握Away3D这一强大的开源框架。Away3D是基于ActionScript 3.0的,为Flash Player和Adobe AIR平台提供了高性能的3D图形渲染能力。在Flash 3D...
《Away3D 4.1.0 SWC:探索3D图形编程的强大力量》 Away3D是一个广泛使用的开源框架,专为Adobe Flash Platform设计,用于创建高质量的3D图形应用程序。在标题提到的"away3d 4.1.0 swc"中,SWC文件是一种库包格式,...
《Away3D汽车展示:深度解析与应用》 在当今的数字媒体领域,3D图形技术的应用日益广泛,尤其在汽车展示中,它能够提供逼真的视觉体验,增强用户对产品的感知。 Away3D作为一款强大的Flash平台上的开源3D引擎,为...
【Away3d+as3dmod超炫3D相册】是一种基于ActionScript 3.0(As3.0)的3D图形渲染技术,结合Away3d库和as3dmod模块,创造出立体感超强的3D环形相册效果。这个项目展示了如何在Web上实现动态、互动的三维图像展示,给...
在本文中,我们将深入探讨如何在Flex环境中利用Away3D引擎播放帧动画。Away3D是一个强大的开源3D图形库,适用于Adobe Flash平台,包括Flex。这个示例着重于将Away3D与Flex结合,创建出具有交互性的3D场景,并在其中...
《Away3D 4.1:GPU加速全景技术解析与实战》 Away3D是一款强大的开源3D图形库,主要用于Adobe Flash平台,提供高效的3D渲染能力。在Away3D 4.1版本中,引入了对GPU加速的深度支持,从而在Web上实现了真正意义上的...
《Away3D 4.1 开源代码深度解析》 Away3D,作为一个知名的开源三维图形库,为开发者提供了一套高效、灵活的工具,用于在Flash平台上构建三维应用程序。Away3D 4.1 版本是其发展历程中的一个重要里程碑,它在性能...
《Away3D 3.6 Cookbook 教程源码》是一个专门为开发者提供的学习资源,它基于 Away3D,一个强大的Flash平台上的3D图形引擎。Away3D以其高效的性能和丰富的功能,使得在Web上创建复杂的3D应用程序变得可能。这个教程...
**Away3D官方API详解** Away3D是一个强大的开源库,专为Flash平台设计,用于创建高质量的3D图形和交互式应用。这次发布的Away3D 4.0 API文档,是开发人员期待已久的更新,它带来了许多新特性和性能优化,让Flash 3D...
《Away3D:深入探索3D图形编程的奇妙世界》 Away3D是基于Adobe Flash Platform的开源3D引擎,它为Web开发人员提供了一种高效、强大的方式来创建交互式三维图形应用。"away3d-away3d-examples"项目,正如其名,是一...
flash 3D引擎 away3d源码 flash 3D引擎 away3d源码 flash 3D引擎 away3d源码 flash 3D引擎 away3d源码 flash 3D引擎 away3d源码 flash 3D引擎 away3d源码
Away3D是一个强大的开源框架,专门用于在Adobe Flash Player和Adobe AIR环境中构建三维(3D)图形和交互式应用程序。这个API(Application Programming Interface)为开发者提供了丰富的工具和功能,使得在Web上创建...
在Flex项目中引用Away3D(版本3.6)AS项目是一个高级的3D图形编程实践,这涉及到将流行的ActionScript 3(AS3)框架Away3D与Adobe Flex结合使用,以创建丰富的3D用户体验。Away3D是一个强大的开源库,它允许开发人员...
《Away3D:一款强大的Flash 3D引擎》 Away3D,作为一款开源的Flash 3D引擎,自发布以来便受到了广大开发者和设计师的热烈欢迎。它以其高效、灵活和功能强大著称,为Flash平台带来了丰富的三维图形渲染能力,让网页...
《Away3D核心运行库FP9版本:深入解析与应用》 Away3D是一个高度优化的,基于ActionScript 3的开源3D引擎,专为Adobe Flash Player平台设计。本次我们关注的是其针对Flash Player 9(简称FP9)的核心运行库——...
《Away3D 4.14 Gold:深入解析开发包源码》 Away3D,作为一款强大的开源三维渲染引擎,被广泛应用于Flash和HTML5的3D图形开发。其4.14 Gold版本,是该引擎的一个重要里程碑,为开发者提供了更高效、稳定且功能丰富...
【标题】"away3d地球demo"所涉及的知识点主要围绕Away3D引擎、地球模拟以及AS3编程语言展开。 Away3D是一个基于ActionScript 3(AS3)的开源三维图形库,专为Adobe Flash Player和Adobe AIR平台设计。这个引擎允许...
《Away3D Demo详解:深度探索3D图形编程的魅力》 Away3D是基于Adobe Flash Platform的一款强大的开源3D引擎,它为Web开发者提供了一种高效、便捷的方式来创建丰富的3D交互体验。在这个"away3d Demo"中,我们重点...