Flash制作的一个3D类效果

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

Macromedia 3Dclasses

1.添加场景

SceneName:Scene= new Scene();

属性:

clip:MovieClip 绘制物体的影片剪辑

f:Number 焦距比数,过小会使物体变形,默认为300(最自然)

quaternion:Quaternion 四元数,默认为0,0,0,1(处理旋转用)

方法:

addNode(NodeName) 添加一个点

addObject(ObjectName) 添加一个面(多边形,直线,曲线面)

draw() 绘制物体

2.建立面样式

StyleName:Style = new Style();

属性:

linecolor:String 线条颜色,默认为黑色

lineweight:Number 线条粗细,默认为0

linealpha:Number 线条透明度,默认为100

fillcolor:String 填充颜色,默认为黑色

fillalpha:Number填充透明度,默认为100

3.建立点

NodeName:Node = new Node(x:Number,y:Number,z:Number);

属性:

x:Number x位置

y:Number y位置

z:Number z位置

方法:

rotate(QuaternionName) 绕中心(0,0)旋转(无须手动调用,由Scene的draw()函数调用)

project(Number) 计算透视(无须手动调用,由Scene的draw()函数调用)

4.添加点

SceneName.addNode(NodeName)

5.建立面(多边形,直线,曲线面)

(1)多边形面

PolygonName:Polygon=new Polygon()

属性:

style:Style 此面的样式

clip:MovieClip 绘制此面的影片剪辑

方法:

addNode(nodeName,isControl) 添加组成面的点,isControl定义是否是曲面控制点

draw() 绘制此面(无须手动调用,由Scene的draw()函数调用)

(2)直线

LineName:Line=new Line(startnode,endnode) 指定起止点

属性:

style:Style 此直线的样式

clip:MovieClip 绘制此直线的影片剪辑

startnode:Node 起点

endnode:Node 终点

方法:

draw() 绘制直线(无须手动调用,由Scene的draw()函数调用)

(3)曲线

CurveName:Curve=new Curve(startnode,endnode,controlnode) 指定起止点和控制点

属性:

style:Style 此曲线的样式

clip:MovieClip 绘制此曲线的影片剪辑

startnode:Node 起点

endnode:Node 终点

controlnode:Node 控制点

方法:

draw() 绘制曲线(无须手动调用,由Scene的draw()函数调用)

6.添加面

SceneName.addObject(ObjectName)

7.定义四元数(旋转用)

QuaternionName:Quaternion = new Quaternion();

属性:

x:Number 绕x轴旋转角度

y:Number 绕y轴旋转角度

z:Number 绕z轴旋转角度

w:Number 旋转速度

方法:

fromPoint(x:Number, y:Number, z:Number) 从某点位置开始

fromAxisAngle(x:Number, y:Number, z:Number, w:Number) 从某轴以某角度开始

concat(q:Quaternion) 添加一个四元数

invert() 取反

copy() 复制并返回一个Quaternion

8.开始旋转

定时调用SceneName.draw()并通过SceneName.quaternion.concat(QuaternionName)不断累加quaternion

这个类的坐标设定:x轴左为正,右为负,y轴上为正,下为负,z轴外(冲着屏幕外)为正,里为负。如图

演示效果:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有