第2章 往舞台动态地添加对象
现在你已经学会了如何操作舞台上已有的对象,接下来你将学习如何使用ActionScript动态地往舞台添加存放在库中的对象。
与前一章的区别是,你将要操作的对象还没有被放到舞台上。当程序编译成SWF以后,你将使用ActionScript动态地往舞台中添加来自库中的对象。
2.1 创建库资源,并为它命名
你应该还记得,如果要访问舞台上对象的属性,你需要为对象取一个名字,这样ActionScript才能引用它。当你从库中往舞台添加对象时,同样需要为对象取一个唯一的名字,同时你还需要为库中对象的队列取一个名字,这样ActionScript才能从队列中取出一个对象并将它放到舞台上。
1.在Flash Professional CS5.5中新建一个ActionScript 3.0项目。
2.在舞台上,创建一个简单的圆圈,并将它转换为元件。
3.将元件命名为Blue Circle,并将元件的类型选择为MovieClip。
通常情况下,你动态添加到舞台上的对象都需要是MovieClipl类型,在单击OK前,你需要为该实例取一个名字让ActionScript可以访问到。
Graphic(图型)和MovieClip有什么区别?
当你创建元件时,你会注意到有三种类型的元件可以选择 MovieClip,Graphic和Button(按钮)。当使用ActionScript时,只有MovieClip类型的元件才能被ActionScript访问。如果你选择了Graphic类型,你将不能使用ActionScript来控制它。Graphic元件被用在动画或者你需要重用该元件的情况,它不是为了要让ActionScript来控制。Button也是一个对象类型。它实际算是MovieClip的早期版本,在老版本的ActionScript中使用。你现在还是可以使用它,但是它完全没有MovieClip好用,而且实践中也证明应该使用MovieClip来代替Button。
4.打开高级设置(Advanced)。
当高级设置打开以后,你会看见中间有ActionScript Linkage的一组选项,这部分的选项是用来给对象设置名字的,这样你就可以使用这个名字来访问对象并将它放到舞台上了。
5.选中Export for ActionScript选项卡。
Class和Base Class字段会自动填入BlueCircle和Flash.display. MovieClip中。
完成这些设置之后,Convert to Symbol对话框应该看起来和图2.1一致。
与给库中对象命名不同,ActionScript对象的命名是不可以有空格的,这类似ActionScript中便利贴的表现形式。我们把蓝色圆圈的便利贴组叫做BlueCircle类,你可以回看第一节的内容,回顾我们举的便利贴例子(图2.2)。
为了让Flash知道对象的类型,我们需要有基类的定义。在这个例子里,基类是flash.display.MovieClip。你可以暂时不必考虑MovieClip前面的语句部分的意思,以后我们会讲到,现在只需要弄明白蓝色圆圈便利贴就是这里的BlueCircle类。
6.单击OK,你会看到错误信息(图2.3)。
暂时不用去担心这个信息,在未来你会创建一个特殊的ActionScript文件来定义BlueCircle类如何工作。
在库面板中Linkage列里,你会看见Blue Circle是关联到BlueCircle类的,在ActionScript中,使用它来创建实例对象(图2.4)。
注意:
错误信息是提醒你该对象缺少一个特殊的ActionScript文件,在本书的后面你会学习到如何添加这些文件。