[Papervision3D]Setting Up 准备
1 准备
如果你不知道从哪里开始,那么让一个开源项目如Papervision3D顺利运行可能会令你生畏。在本章,我们将一步一步地经历准备开发环境的过程。你将学习如何下载,安装,和配置你创建Papervision3D应用程序所需要的每件事。
本章覆盖如下内容:
- 下载Papervision3D的三种途径
- 配置你的创作工具,以使代码工作
- 运行一些例子
- 使用文档
当我们称Papervision3D为一个Flash平台开源3D引擎,“引擎”到底代表什么?
基本上,Papervision3D由一系列文件夹按照特定的结构组成。这些文件夹里有经过良好架构的自定义ActionScript类,允许你在Flash里创建3D内容。没有类似.exe或.app的文件可供下载。没有你能双击安装的文件。然而,通过下载这些文件夹以及在ActionScript项目里包括进来,你能像访问Flash API或自己写的自定义类一样访问它们。
例如,如果你熟悉ActionScript 3.0,你可能听过DisplayObject类。MovieClip,Sprite,和Button都是显示对象类。类似这个类,Papervision3D库里有叫DisplayObject3D的类,有它自己的变量,方法,和属性。因此,在下载和安装这些文件夹后,你就能访问DisplayObject3D的变量,方法,和属性,就像你能在像DisplayObject一样平常的内置类里访问这些一样。
为了说明,让我们比较基于FlashAPI的代码和使用Papervision3D库的代码。下面两行可能看起来熟悉,因为它们实例化Flash的DisplayObject类并添加实例到舞台:
现在,看一下如下两行,包含Papervision3D代码:
这次,Papervision3D的DisplayObject3D类被实例化并添加实例到一个3D场景。你能清楚地看到2D Flash代码和Papervision3D代码的类似之处。更多3D场景相关在第2章讨论。Papervision3D API有很多方法和属性看起来像它们的2D对应者。像addChild()和removeChild()等方法被添加到Papervision3D,为了尽可能近似Flash API及其显示列表。
让我们看看如何下载Papervision3D类库,也即源代码。
下载Papervision3D
Papervision3D托管于Google Code。你能在这里找到项目主页:
http://code.google.com/p/papervision3d/
此页提供重要资源,有很多指向例子,教程,和文档的引用。但是现在我们对源代码感兴趣。我们访问此页,到Source | Browse,一个一个手动下载所有文件,但是这得花很大功夫。除此之外,还有如下途径得到代码:
- 通过Subversion——一个版本控制系统下载代码
- 下载ZIP文件
- 下载SWC文件
然而这里有一些重要的差别。SWC文件包含已编译代码,而ZIP文件里的或用Subversion下载的代码则是未编译代码。在我们细看ZIP文件,SWC文件,和什么是Subversion之前,让我们看看已编译代码和未编译代码都是关于什么的。
已编译和未编译源代码的差别
下载未编译源代码意味着你将得到文件夹和类,就像它们没被编译成任何格式时的样子。你能打开类并阅读代码。这对学习过程很有帮助。看看类里有什么是提高你编程技能的好方法。你甚至能试验和修改源类;然而,在本书学习期间你不做这些。虽然在外部库里修改代码有时候很诱人。一种更好的实践是保留这些代码并找到其它方法来修改或扩展它。改变源的一个缺点是,当你下载新版本源代码时,修改处可能会被改写和丢失。
未编译代码可在Flex Builder,Flash Builder,Flash CS3,和Flash CS4里使用。
然而,SWC包含已编译源代码。可对比于发布Flash影片。你发布Flash影片时,你的代码被编译到SWF里。在这种情况下,类被隐藏,因此你再也不能看到和打开它们。
==========
注意:
SWC不能在Flash CS3里使用。
==========
现在清楚了,Subversion和ZIP文件给你未编译代码,SWC包含已编译代码。通过细看这三个选择,我们将更容易做出选择哪一个的决定。
什么是Subversion?
Subversion,也叫SVN,是一个开源版本控制系统。它允许开发者,或开发者团队,来上传和下载其工作项目的当前和历史版本。
假设一个开发者团队工作在相同的项目上,像Papervision3D团队。如果其中一个开发者对项目做了一个改变并上传,或提交它,SVN包含变化到新的项目版本中。同时,SVN作为一个版本控制系统,保存之前的版本。换句话说,你能始终从服务器里检索旧版本。很多开源项目使用SVN,因为它使多个开发者工作在相同项目上时减少乏味感。
你可能想知道为什么这对我们很重要。如果你认为SVN是项目所有版本存储的位置,那么它也是我们能找到和下载项目最新版本的地方。对于偏好使用最新特性的开发者来说,保持代码最新,是Papervision3D作为一个开源项目的固有需要。这是不断地开发和改变。
因此,你如何使用SVN下载项目最新版本到你计算机上?你需要一个SVN客户端。这是一个软件程序,安装在你的计算机上。这个客户端用来下载最新版本的源代码。
ZIP里面是什么?
ZIP文件包含未编译源代码。与SVN服务器上的源代码有一个差别。SVN服务器总是包含最新版本,ZIP文件往往或多或少有点过时。这是讲得通的,因为SVN源代码是你作为用户看到的最新代码。项目成员要持续不断地发布更新的ZIP。由于多种原因,这不总会发生,导致ZIP可能过时。然而,ZIP文件里的代码可能被更好地测试过,因此相对于SVN代码更加稳定。由于开源项目要不断修改,SVN服务器上的代码可能包含新特性甚至错误,在你下载一个新版本时,这可能会破坏你项目里的代码。
那么SWC里是什么?
设想SWC为已编译的类库。如果你包含Papervision3D SWC到你的项目,你可以访问所有Papervision3D类,但是你不能看到和打开它们。
我们刚看到,ZIP文件里的代码相对于SVN服务器上的代码来说可能不是最新的。SWC也同理。但是我们也看到了,ZIP文件可能比SVN代码更加稳定,这对SWC来说也一样。
在SWC,ZIP,SVN中选择
如果有三种获得源代码的途径,你会选择哪种?
显然,下载SWC或ZIP的过程比用SVN下载更容易,因为你不需要安装SVN客户端。然而,一旦你已经准备好SVN客户端,更新过程就被很好地集成到你的系统里,你总是能得到最新版。这取决于什么对你更重要。
我们讨论了使用已编译和未编译源的若干优缺点。让我们通过一个表格来总览下。
SWC(已编译) | ZIP(未编译) | SVN(未编译) | |
Flash CS3 | - | + | + |
Flash CS4 | + | + | + |
Flex Builder 3 | + | + | + |
Flash Builder 4 | + | + | + |
稳定性 | + | + | - |
保持最新 | - | - | + |
使用SVN下载未编译源
我们将首先下载和安装适合你系统(特别是Windows和Mac OS X)的SVN客户端,然后使用客户端下载未编译源代码。如果你选择使用ZIP或SWC,你可以跳过这部分,继续阅读“下载ZIP形式的未编译源”或“下载已编译源”。
因特网上有一大堆可用的SVN客户端。我们将首先给Windows选择一个客户端,然后是Mac OS X。
Windows上
我们使用TortoiseSVN作为Windows上的SVN客户端。我们下载和安装这个程序,然后使用它下载Papervision3D源代码。
- 到http://tortoisesvn.net/downloads。
- 下载最新安装包。安装向导将带你通过安装过程。你不必改变默认设置。
- 安装完后,重启你的计算机。
==========
注意:
一个常问的问题是接下来是否应该下载和安装Subversion。答案是“不”。Subversion已经被包括进TortoiseSVN了。
==========
现在你已经安装了SVN客户端,让我们使用它来下载Papervision3D源代码。
- 在你计算机某处创建一个新文件夹。你可以随便起名。本书里,我们叫它papervision3d_source。它将包含Papervision3D源代码。
- 右击此文件夹。你会注意到你的右键菜单现在有一些涉及到TortoiseSVN的额外选项。
- 选择“SVN Checkout...”。
- 一个窗口弹出,问你“URL of repository”。填入: http://papervision3d.googlecode.com/svn/trunk/as3/trunk
==========
- 然后点击“OK”。TortoiseSVN开始从SVN服务器上下载源文件。
- 当下载完毕后再点击“OK”。
Mac OS X上
对于Mac OS X,我们使用svnX作为我们的SVN客户端。我们下载和安装这个程序,然后使用它下载Papervision3D源代码。
如果你访问svnX的下载页:http://www.lachoseinteractive.net/en/community/subversion/svnx/download/,它将告诉你使用svnX有两个要求。它假定你有Mac OS X 10.4或更高版,并且你需要安装Subversion。尽管有多种其它选择可用,但svnX下载页链接到Martin Ott制作的版本。所以,让我们先取得一个。
- 到http://homepage.mac.com/martinott/。
- 下载My Subversion-#.#.#包(版本数字因时而异)。这是一个ZIP文件。
- 打开ZIP,双击里面的文件,它是一个PKG文件。一个窗口将出现,引导你通过安装过程。当安装完成,我们就能下载svnX。
- 返回svnX下载页面:http://www.lachoseinteractive.net/en/community/subversion/svnx/download/。
- 下载svnX。这次你可以将下载一个DMG文件。双击它,将打开一个新查找窗口,找到svnX.app。拖动或复制它到你的Applications文件夹。
- 在你计算机某处创建一个新文件夹。你可以随便起名。本书里,我们叫它papervision3d_source。它将包含Papervision3D源代码。
- 通过双击Applications文件夹里的svnX.app运行svnX。
- 到“Window”,选择“Repositories”。“Repositories”窗口显示你下载的项目列表。它现在仍然是空的,但是我们将要添加Papervision3D。
- 添加一个新项目,通过选择默认存储或者通过点击+图标。你能在Name里任意填,但是在我们的例子里,我们使用“Papervision3D”。你能保留字段User和Pass为空。
- 打入或粘贴如下URL到Path字段:http://papervision3d.googlecode.com/svn/trunk/as3/trunk
- 双击你刚添加的项目。一个新弹出窗口出现,显示项目细节。你能看到Papervision3D团队成员所做提交的刘表。每个列表项代表一个修改,你能说明谁上传了改变,什么时候上传。还有日志消息,由提交改变的开发者写的,含有一些关于改变了什么的基本信息。
- 如果还没选择,则选择列表最上端的修改版。
- 点击SVN CHECKOUT按钮,浏览至你刚创建的papervision3d_source文件夹。
- 选择它,并点击Open。通过这样做,svnX将开始下载服务器上的文件到这个文件夹。
- 同时,一个新的窗口弹出。这是Working Copies窗口。
- 改变默认Name到更合适的,如Papervision3D。
下载ZIP文件形式的未编译源
ZIP文件内有未编译源代码。你能在Papervision3D的Google Code页面找到它。像前面说的,书中的例子基于Papervision3D 2.1,revision 920。我们将下载此版本,以保证所有例子正常工作。如下步骤说明如何得到此版本的ZIP文件。
- 在你计算机某处创建一个新文件夹。你可以随便起名,本书里,我们叫它papervision3d_source。在此文件夹里,创建一个新的文件夹,叫src。
- 到http://code.google.com/p/papervision3d/downloads/list。
- 查找有如下摘要的ZIP文件:Papervision3D 2.1.920.zip (for use with "Papervision3D Essentials" book)。
- 下载此ZIP文件,保存到计算机任意位置。
- 解压此ZIP文件。
- 放置(或保存,如果你使用解压导航的话)解压后的文件夹到我们刚在papervision3d_source文件夹里创建的src文件夹。
下载已编译源
如果你的创作工具是Flex Builder,Flash Builder,或Flash CS4,则未编译和已编译源代码都可以用。如果你决定使用已编译源代码,你可以从Papervision3D的Google Code页面下载包含此代码的SWC文件。因为本书例子基于Papervision3D 2.1,revision 920,我们将下载此版本来保证所有例子正常工作。如下步骤说明如何得到revision 920的SWC。
- 在你计算机某处创建一个新文件夹。你可以随便起名,本书里,我们叫它papervision3d_source。在此文件夹里,创建一个新的文件夹,叫src。
- 到http://code.google.com/p/papervision3d/downloads/list。
- 查找有如下摘要的SWC文件:Papervision3D 2.1.920.swc (for use with "Papervision3D Essentials" book)。
- 下载此SWC文件,保存到我们刚创建的papervision3d_source文件夹里。
为Papervision3D配置你的创作工具
现在我们已经下载了源代码,我们将配置我们选择的创作工具来使用Papervision3D。如果你的创作工具是Flex Builder或Flash Builder,你可以继续阅读“配置Flex Builder和Flash Builder”部分。
配置Flash
我们已经下载了源代码,但是如何让其工作?一般情况下,如果你下载了一个软件程序,像我们对SVN客户端所做的,你需要安装它。但是注意Papervision3D不是软件程序——它是文件夹和类组成的库。我们需要做的是告诉Flash这些文件夹在哪里,以便我们使用Flash IDE时能访问它们。换句话说,在Flash里我们必须设置到papervision3d_source文件夹里的源代码的路径。这就是配置Flash。
Flash能处理如下两种设置路径的方法:
- 你能在每个FLA里分开设置它。
- 你能全局地设置它,这意味着每个你打开或创建的FLA都能自动访问这个源。
在本书里,我们将使用第二种方法,这样我们就只用设置一次路径。
Flash CS3和CS4都让你设置到未编译源的路径,但是只有Flash CS4允许设置到SWC或SWC文件夹的路径。如果你决定使用SWC,你可以继续阅读“在Flash(只限CS4)里设置到已编译源代码的路径”部分。
在Flash(CS3和CS4)里设置到未编译源代码的路径
如果你已经下载ZIP文件或使用SVN,如下步骤将在Flash里设置到源代码的路径:
- 打开Flash。你不需要创建一个新的FLA或打开一个已经存在的。
- 到“Flash | 首选参数”(MAC里),或“编辑 | 首选参数”(Windows)。
- 在左边的分类列表里选择“ActionScript”。点击“ActionScript 3.0 设置”按钮。
- 如下步骤展示了在Flash CS4和它的前身CS3一点不同。
- 在Flash CS4里:点击“源路径”旁的“+”图标,然后点击文件夹图标。
-
- 在Flash CS3里:点击“类路径”旁的“+”图标,然后点击浏览图标。
- 浏览到源代码所在的文件夹——在我们的例子里是papervision3d_source。
- 选择src,点击“确定”。你将看到路径已被添加。
- 点击“确定”两次来关闭对话窗口。
在Flash(只限CS4)里设置到已编译源代码的路径
- 打开Flash。你不需要创建一个新的FLA或打开一个已经存在的。
- 到“Flash | 首选参数”(MAC里),或“编辑 | 首选参数”(Windows)。
- 在左边的分类列表里选择“ActionScript”。点击“ActionScript 3.0 设置”按钮。
- 点击“库路径”旁的“+”图标。然后点击红色的SWC图标。
- 浏览到SWC所在的文件夹——在我们的例子里是papervision3d_source。
- 选择SWC,点击“确定”。你将看到路径已被添加。
- 点击“确定”两次来关闭对话窗口。
在Flash里运行一个例子
让我们用Flash IDE打开随书例子。通过做这个,我们将能确定是否安装和配置正确。不仅如此,这也给我们看看Papervision3D工作的机会。
- 打开Flash。
- 到“文件 | 打开”。
- 浏览到examples文件夹,它能在随书下载里找到。
- 浏览到“CH01 | Flash | SetupTest”。
- 打开“SetupTest.fla”,发布它。
配置Flex Builder和Flash Builder
配置Flex Builder和Flash Builder,也就是设置Papervision3D源代码的路径。我们将首先导入一个已经存在的项目(随书例子),然后为此项目设置到源代码的路径。
导入一个例子项目
Flex Builder和Flash Builder都允许你导入项目。让我们导入一个随书例子。
- 打开你选择的创作工具。
- 到“File | Import | Other”。
- 打开叫“General”的文件夹,选择“Existing Projects into workspace”。
- 点击“Next”,选择“Select root directory”,如果未选的话。
- 点击“Browse”,浏览到下载的examples文件夹。
- 到“CH01 | FlexBuilder”。
- 选择后,被识别的有效项目列表会显示出来,确保只有“SetupTest”的复选框被选中。
- 点击“Finish”。
- 现在项目被导入了。Flex Builder将在“Flex Navigator”视图里显示它,Flash Builder在“Package Explorer”视图里显示。双击打开“SetupTest”项目。
我们导入的项目使用Papervision3D源代码。开发者已经在他的创作工具里设置路径到了代码。但是这个路径可能与你电脑上的不同,我们存储和命名源代码文件夹与开发者不同。因此,让我们改变路径,修正这个问题。
在Flex Builder和Flash Builder里设置到未编译源代码的路径
如果你已经下载ZIP文件或者使用SVN,如下步骤将在你项目里设置到源代码的路径。
- 右击“SetupTest”项目文件夹。你能在Flex Builder的“Flex Navigator”视图或Flash Builder的“Package Explorer”视图里找到它。
- 选择“Properties”。
- 选择“Actionscript Build Path”,点击“Source path”,如果它为被选中的话。你将看到一个路径,指向另外的源文件夹。要编辑它,双击它并浏览到我们的papervision3d_source文件夹。然后选择src。
- 点击“确定”和“OK”。
- 点击“OK”关闭“Properties”窗口。
我们已经改变的路径是项目开发者设置的,但是不适用于我们。我们需要设置到我们计算机上的源文件夹的路径。
在Flex Builder和Flash Builder里设置到SWC的路径
如果你已经下载了SWC,如下步骤将在你的项目里设置到SWC的路径。
- 右击“Flex Navigator”视图(Flex Builder)或“Package Explorer”视图(Flash Builder)里的项目文件夹。
- 选择“Properties”。
- 选择“Actionscript Build Path”,点击“Source path”,如果它为被选中的话。你将看到一个路径,指向另外的源文件夹。通过点击来高亮此文件夹,点击“Remove”按钮。
- 选择“Library path”。
- 点击“Add SWC Folder”按钮。
- 浏览到papervision3d_source文件夹并选择它。点击“确定”和“OK”。
- 点击“OK”关闭“Properties”窗口。
在Flex Builder和Flash Builder里运行例子
出现在“Problems”视图里的错误已经消失。这是怎么回事?首先我们导入了一个已经存在的例子项目。然后我们编辑了路径,使它指向我们的Papervision3D源代码。现在我们已经正确配置了项目,我们已经准备好运行例子。选择项目并发布它。
你的浏览器会打开,然后展示编译了的SWF。你看到地球旋转和一个3D文本了吗?恭喜,你已经正确的准备好了Papervision3D。
如果你编译此项目时得到错误,请重读之前的部分。最普遍的错误是:
The definition of [ class name ] was not found.
如果你得到此错误,你可能没有正确设置路径。
去哪里找Papervision3D文档
总结