Pilihou's Blog

《ActionScript 3.0游戏编程大学》第二版——第一章(1)

使用Flash及ActionScript 3.0
什么是ActionScript 3.0?
创建简单的ActionScript程序
使用Flash CS5
编写ActionScript
ActionScript游戏编程的策略
ActionScript基本概念
测试和调试
发布游戏
ActionScript游戏编程的清单

ActionScript是一个用来制作游戏很好的编程语言。这是简单易学,开发迅速,且非常强大。
我们先看看ActionScript 3.0和Flash CS5专业版的创作环境。然后,我们建立了一些简单的程序来熟悉这个新版的ActionScript。

什么是ActionScript 3.0?
ActionScript 3.0是2006年推出的,一直以来就是Flash的主要编程语言。ActionScript原始版本是1996年发布的Flash4中推出的。只是它不是叫做ActionScript,你甚至无法键入你的代码。而是从一系列下拉菜单中选择语句。
在2000年的Flash 5中随着ActionScript 1.0正式推出得到了大大的改善。此脚本语言中包含了所有其他花里胡哨的基于Web的开发语言,如Macromedia Director的Lingo和Sun的Java。但它在速度和职能上严重欠缺。
Flash MX 2004,也称为Flash 7,给我们带来了ActionScript 2.0,一个更强大的语言版本,使它更容易创建面向对象的程序。它非常接近于ECMA Script,一个由欧洲计算机制造商协会开发的编程语言标准。使用在浏览器中的JavaScript编程语言,也是基于ECMA Script。
注意
Flash Player内置了两个独立的代码解释器。第一个是为旧的内容并将解释ActionScript 1.0/2.0代码。第二个是一个更快的解释器,它作用于ActionScript 3.0。如果你坚持只使用ActionScript 3.0代码,你的游戏可以获得最好的性能。
ActionScript 3.0是多年的发展成果。因为每个版本的Flash出来后,开发者推崇到了极限。下一个版本考虑到了什么样的开发者使用Flash以及当前ActionScript版本的弱点是什么。
现在我们有了一个为2D游戏开发的优秀开发环境。你会发现其主要优势之一是能够获得游戏进度并只运行少量的代码。
注意
Flash CS5专业版实际上是Flash 11。Adobe已经简单地将各种软件版本——如Flash,PhotoShop ,Illustrator以及Dreamweaver——捆绑进了它们的CS5包中。在CS5中Flash的技术版本号是Flash 11。正确的应该是把它作为Flash 11或Flash CS5。安装在浏览器中的播放引擎使用不同的编号方案,而它是Flash Player 10。

创建简单的ActionScript程序
源文件:http://flashgameu.com中的A3GPU201_HelloWorld.zip
当介绍一个新的编程语言时,通常是从Hello World程序开始的。我们的想法是简单地写一个程序,它只是在屏幕上显示单词Hello World。
注意
Hello World程序可以追溯到1974年,当时它被列入贝尔实验室的内部教程文档中。它是我在70年代末在学校里坐在PDP-11终端前面学到的第一个程序。几乎所有介绍编程的书在开始都有一个Hello World的例子。
简单的使用trace
我们可以通过在主时间轴的脚本中使用trace函数来创建一个Hello World限定版本。所有trace在Flash的输出面板中输出一些文本。
要创建新的Flash影片,从菜单中选择文件>新建。你会看到如图1.1所示的新建文档窗口。

图1.1 选择ActionScript 3.0来创建新的Flash影片
单击确定后,你得到名为Untitled-1的新的Flash影片。它显示为一个Flash文档窗口,如图1.2所示。

图1.2 Flash文档窗口包含一个时间轴和一个舞台工作区域。有许多方法来配置Flash工作区,所以你
的面板可能在不同的位置。
文档窗口的顶部部分包含一个时间轴,它从第1帧开始并向右延伸——在图1.2中可以看到比50帧多一点,但是这依赖于窗口的大小。帧数可以按动画者要求尽量延长,但作为游戏程序员,我们只需要几帧来建立我们的游戏。
时间轴可以有一个或多个图层。默认情况下,在窗口中有一个名为图层1的图层。
在图层1中,你会看到单个关键帧,在第1帧中用带有空心圆点的框来表示。
注意
关键帧是一个动画结束。如果我们学习Flash动画,而不是学习编程,我们将一直在用关键帧。基本上,关键帧是时间轴中的一个点,其中具体设置了一个或多个动画元素的位置。关键帧之间,这些元素位置会改变。例如,如果第1帧关键帧有一个元素在场景的左侧,第9帧关键帧有相同的元素在场景的右侧。在这些关键帧之间,如在第5帧上,该元素将出现在场景的中间。
我们不使用关键帧动画,而是在不同的模式中使用它们在场景上放置元素:如介绍,播放和游戏结束。
你可以在时间轴的任何图层的任何关键帧中编写脚本。要做到这一点,选择关键帧,选择“窗口”菜单,然后选择“动作”。
这样打开动作面板。可以在图1.3中看到结果。它可能与你的看起来不同,因为它可以用多种方式来定制,在左侧的菜单中包括全套的ActionScript命令和函数。

图1.3 动作面板也可以通过快捷键ALT+F9(Windows中)或Option+F9(MAC中)来访问
动作面板,基本上只是一个文本输入窗口。但是,它可以为你做更多的事,如帮助你格式化代码。出于这本书的目的我们不使用动作面板,因为我们的代码大部分是在外部的类中。
要创建这个简单的Hello World程序,在动作面板中输入如下的文本:

trace("Hello World.");

就是这样。你已经创建了你的第一个ActionScript 3.0程序。要测试它,选择“控制”,测试影片,测试。或在Mac中使用快捷键Command+Return和在Windows中使用Ctrl+Enter键。如果你没有建立自己的影片,你可以打开HelloWorld1.fla并用这个文件来测试。
现在,看到输出面板。即使你已经关闭了那个面板,它也会出现。但是,它往往是个小面板,所以它很容易出现在你没有注意到的屏幕角落。例如,甚至出现在和时间轴一组的面板中。图1.4显示了它看起来的样子。

图1.4 输出面板显示了trace函数调用的结果。
虽然这个Hello World程序在技术上输出了“Hello World”,要这样做,因此在Flash CS5中测试影片。如果你要在浏览器中嵌入这个影片,它会在屏幕上显示。我们需要做更多的工作来创建一个真正的Hello World程序。

创建场景输出
要在场景上显示单词Hello World,我们需要一行以上的代码。实际上,我们需要三行。
第一行创建一个新的文本区域来在场景中显示,称做文本字段,这是用来保存文本的容器。
第二行把单词Hello World放进那个文本区域。
然后,第三行添加文本字段到舞台上。舞台是Flash影片的显示区域。当创作影片时你可以在舞台上摆放元素。在播放期间,舞台是用户看到的区域。
在ActionScript 3.0中,创建像text field的对象并没将它们添加到舞台。你需要自己做。这稍后在你要组合对象在一起并不直接在舞台上摆放是有用的。
注意
在ActionScript 3.0中的任何视觉元素被叫作显示对象。它可能是文本字段、图形元素、按钮、甚至用户界面组件(例如弹出菜单)。显示对象也可以是其它显示对象的集合。例如,在棋类游戏中显示对象可以容纳所有的棋子,棋盘是在它下面的另一个显示对象。舞台本身是一个显示对象,实际上显示对象被称为影片剪辑。
这里是我们新的Hello World程序三行的代码。这些只需替换前面例子的时间轴第1帧的一行代码:

var myText:TextField = new TextField();
myText.text = "Hello World";
addChild(myText);

注意
当输入这些代码,Flash可能会自动在你的脚本上方插入一行代码:import flash.text.TextField;。它这样做是因为只要它看到你使用TextField对象,它假定你想在你的的Flash影片中包括ActionScript 3.0库中的这部分。其中包括,你可以创建TextField对象。
代码创建了一个变量名为myText的TextField类型。然后在把它作为舞台显示对象的子对象添加之前设置这个文本字段的text属性为“Hello World”。
第一次使用myText变量之前的var关键字告诉编译器我们创建一个名为myText的变量;冒号和类型,TextField告诉编译器这个变量持有什么类型的值(在这种情况下,文本字段的引用)。
这个程序的结果是一个很小的默认字体为serif的“Hello World”在场景的左上角。选择“控制”,“测试影片”来看它。源文件是HelloWorld2.fla。图1.5显示了这个我们已经创建的小文本字段。

图1.5 窗口在左上角显示了一个很小的“Hello World”
文本出现在左上角以及那个独特的字体是因为我们没有设置文本字段任何其他属性。我们学习多一点后,我们可以设置文本位置、大小,以及字体。

评论



您的评论出现需要一些时间,请不要重复提交。