查看: 2470|回复: 5
打印 上一主题 下一主题

【Away3d 基础教程】对一个简单类的解释1

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2012-12-6 23:16:45 |只看该作者 |倒序浏览


本指南是首部对FLASH3D引擎Away3D (一款能够应用于Flash或Flex平台中的强大的实时三维引擎)进行系统介绍的文章。在此将对Away3D进行逐字逐句的解释,对于那些依然使用Acrionscript 2.0语言或有制图经验的朋友将能够很容易理解教程中的内容。



无论你想在Away3D里做什么,有几个"物件"是不可或缺的.在本基础指南里会解释场景Scene, 视口View, Camera照相机, Primitives基本元素, Textures材质和其它一些会用到的概念.指南里的每个例子都是基于as3脚本的.所以都可以在flash与flex运行.



如果你是3D菜鸟,你可能想要看我们关于三维核心概念的介绍。这篇教程中也含有其中6 个Away3D项目实例。运行实例文件前,你首先需要在您的计算机上设置Away3D开发环境。当设置好Away3D开发环境后,你只要把这些实例下载到你的项目文件夹上就可以打开、探索和调试这些实例。但由于采用高集成代码,这些例子都要用一个文件Cover.as。请先下载该文件到您的项目目录保证所有能够运行实例。



通俗的讲,我们可以将计算机中的三维效果看作是一部电影。有四样东西是我们始终需要去牢记的,那就是Stage(舞台),Camera(摄影机),View(视角)以及所看到的内容。由于存在大量的“默认”属性,所以您在Away3D入门阶段只需建立一个来运行即可。



最简单的Away3D类



以下是Away3D中最简单的类,它使用了默认的摄像头和舞台。

如果您对下面文件列表中的事件已经了解了,那么请跳转至下一教程。

而对于那些不太熟悉阅读Actionscript 3(AS3)代码的朋友们,我们将带领大家来理解这些语句。





1.package{

2.       import  away3d.containers.View3D;

3.       import  away3d.primitives.Sphere;

4.        import  flash.display.Sprite;

  

5.       [SWF(width="500",  height="400",  frameRate="60",  backgroundColor="#FFFFFF")]

6.       public  class  Basic01  extends  Sprite {

7.             public  function  Basic01() {

8.                    //  创建一个视口

9.                   var  View:View3D  =  new  View3D({x:250,y:200});

10.                   addChild(View);

11.                   //  在三维舞台中创建一个球体

12.                  var  sphere:Sphere  =  new  Sphere();

13.                   View.scene.addChild(sphere);

      

14.                   //  渲染视角

15.                   View.render();

16.              }

17.        }

18.    }      





行 3-4:为了能够使用Away3D,我们需要将类的功能进行导入,这就要使用到标准Sprite类。



行 6: 这是我们示例类的名称。这个类扩展自Sprite类,也就是说它拥有所有sprite的特性。

行 7:一个与类同名的函数,这被我们称为“构造”函数。在我们每次创建新的类实例时,函数(Basic01)将被执行。

行 9-10: 在这里我们将创建一个三维视口,也就是能让我们看到的虚拟三维世界。X和Y的参数会告知Away3D在我们的三维世界中何处设置中心。



行 12-13:在这里我们将创建一个能够看到的简单球体。下一步,我们将这个球体加入到所能看到的默认三维场景中去(正如其他在Flash中的可视物体一样,只有添加到场景中才能看到)。

行 14:Away3D可以让您决定何时渲染视图。渲染指的是一个转换过程,将虚拟的三维内容转换为二维的可视对象。渲染是一个非常有用的密集型中央处理器进行,它能够决定何时进行更新。渲染视图会在当用户的鼠标移动到Flash影片上的时候进行。

其结果是这样的:



行 1:AS3要求所有的类必须在一个包中,简易起见,我们使用的是未命名包(默认包)

movie: Basic01.as





这时我们已经能够在Away3D中建立简单的三维场景了。当然,您可以消除这些注释,把大括号放在同一行,并删除空白行,但是这样代码更便于阅读。



如果您是初次接触AS3,您可能不知道Away3D该出现在舞台的何处,以及应当如何操作呢?由于这个类是默认的Sprite类,它的表现方式就像一个影片剪辑。在Sprites的影片剪辑上基本没有时间轴。由于类是基于Sprites的,所以它能够很容易的去更换舞台中的X和Y坐标,我们可以根据需要不断的去替换它们。



如果您在使用Flash时使用这个类文件(Basic01.as)作为您的Document Class-文档类(或者在Flex中用作“Default Application”-默认应用程序),那么这个扩展自Sprite的实例就会复制舞台中去。如果您对该类实例使用“addChild”的方法来添加其他的Sprites、影片剪辑或组添,这些将添加到该类实例里而非舞台上。如果您还想要在您的三维世界中显示其他内容的话,您只需添加到DisplayList(显示列表)后再添加到您的视口中去。就像其他的可视物体一样,您还可以通过使用setChildIndex或swapChildren的方法来切换显示层叠顺序。

接下来,我们将在所学基础之上做下拓展。从现在开始,我们将假设您已经知道AS3或者您已经知道该如何查找您所需要的AS3程序。(更多flash3d引擎分享尽在web3D纳金网http://www.narkii.com/)
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

沙发
发表于 2012-12-6 23:37:25 |只看该作者
【Away3d 基础教程】Away3d 基础教程总目录
回复

使用道具 举报

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

板凳
发表于 2012-12-6 23:38:59 |只看该作者
【Away3d 基础教程】对一个简单类的解释1


【Away3d 基础教程】视口与场景2





【Away3d 基础教程】相机3

【Away3d 基础教程】操控三维物体4




【Away3d 基础教程】3D基本元素5(1)





【Away3d 基础教程】3D基本元素5(2)

回复

使用道具 举报

无效楼层,该帖已经被删除

0

主题

1

听众

2458

积分

中级设计师

Rank: 5Rank: 5

纳金币
0
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2014-2-22 15:11:39 |只看该作者
好东西啊,感谢分享
回复

使用道具 举报

0

主题

2

听众

3238

积分

中级设计师

Rank: 5Rank: 5

纳金币
0
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2014-2-28 12:22:45 |只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-23 10:55 , Processed in 0.094858 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部