99 lines
2.3 KiB
Markdown
99 lines
2.3 KiB
Markdown
|
|
|||
|
`Object3D`是显示对象的一个抽象模型,所有能够参与渲染的元素均继承自该类。我们可以通过一系列的属性与方法设置3D对象的位置,尺寸以及旋转等属性。
|
|||
|
|
|||
|
`Object3D`是3D空间中的实体对象。场景图中的`Object3D`对象是一个树型结构,对象中包含了变换信息.这些变换信息应用于所有的子对象,子对象也有自己的变换信息,最终的变换信息要结合父对象的变换信息每个`Object3D`对象在生成时会创建一个包围盒。
|
|||
|
|
|||
|
## 创建`Object3D`对象
|
|||
|
|
|||
|
创建语法如下:
|
|||
|
|
|||
|
```
|
|||
|
var obj3d:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
```
|
|||
|
|
|||
|
## 作为容器,添加子对象
|
|||
|
|
|||
|
```
|
|||
|
var target:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
var container:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
|
|||
|
container.addChild( target );
|
|||
|
```
|
|||
|
|
|||
|
## 添加子对象,并指定下标
|
|||
|
|
|||
|
```
|
|||
|
var target:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
var container:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
|
|||
|
container.addChildAt( target, 5 );
|
|||
|
```
|
|||
|
|
|||
|
其中第二个参数是子对象的下标,所有的子对象全部存储在一个数组中,如需要,可通过下面方法获取子对象。
|
|||
|
|
|||
|
```
|
|||
|
var obj3d:egret3d.Object3D = container.childs[5];
|
|||
|
```
|
|||
|
|
|||
|
## 移除子物体
|
|||
|
|
|||
|
```
|
|||
|
var target:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
var container:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
|
|||
|
container.addChildAt( target, 5 );
|
|||
|
|
|||
|
container.removeChild( target );
|
|||
|
```
|
|||
|
|
|||
|
## 查找子物体
|
|||
|
|
|||
|
```
|
|||
|
var target:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
target.id = 55;
|
|||
|
target.name = "myObj";
|
|||
|
var container:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
|
|||
|
container.addChildAt( target, 5 );
|
|||
|
|
|||
|
|
|||
|
//通过id属性查找
|
|||
|
var obj:egret3d.Object3D = container.findObject3DToID(55);
|
|||
|
|
|||
|
//通过name属性查找
|
|||
|
var obj2:egret3d.Object3D = container. findObject3D("myObj");
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
## 旋转、位移与缩放
|
|||
|
|
|||
|
```
|
|||
|
var obj3d:egret3d.Object3D = new egret3d.Object3D();
|
|||
|
|
|||
|
//旋转,方法1
|
|||
|
obj3d.rotationX = 50;
|
|||
|
obj3d.rotationY = 20;
|
|||
|
obj3d.rotationZ = 90;
|
|||
|
|
|||
|
//旋转,方法2
|
|||
|
obj3d.rotation = new egret3d.Vector3D(50,20,90);
|
|||
|
|
|||
|
//位移,方法1
|
|||
|
obj3d.x = 45;
|
|||
|
obj3d.y = 22;
|
|||
|
obj3d.z = 1024;
|
|||
|
|
|||
|
//位移,方法2
|
|||
|
obj3d.position = new egret3d.Vector3D(45, 22, 1024);
|
|||
|
|
|||
|
//缩放,方法1
|
|||
|
obj3d.scaleX = 2;
|
|||
|
obj3d.scaleY = 4;
|
|||
|
obj3d.scaleZ = 6;
|
|||
|
|
|||
|
//缩放,方法2
|
|||
|
obj3d.scale = new egret3d.Vector3D(2, 4, 6);
|
|||
|
```
|
|||
|
|
|||
|
|