本节书摘来自异步社区《ActionScript 3.0基础教程》一书中的第1章,第1.4节,作者: 【美】Doug Winnie 更多章节内容可以访问云栖社区“异步社区”公众号查看。
现在基本的知识你已经掌握了,你将开始写一些ActionScript代码来操作舞台上的蓝色圆圈。
任何的对象、元件、图像、动画都有自己的属性,例如舞台上的圆圈就有一些属性。
注意看属性面板,你会发现圆圈的属性有它的宽,高,x、y的位置(图1.11)。你可以使用ActionScript来读取这些属性的值,或者为它们设置新的值。
你需要标注这些对象才能访问它们,这也是为什么我们需要给每一个实例取唯一的名字的原因。
1.选中Script层的第一帧,删除早前我们写入的trace语句,替换为下面的代码:
trace(circle_1.x);
trace(circle_1.y);
2.从Control菜单中再次运行程序,你会看见相同的预览影片,但是从显示面板中,你会看见两组数字(图1.12)。
这两句代码的意思是访问舞台上的circle_1实例,获取实例的x坐标值,再发送到显示面板显示。同样的语句获取并显示了y坐标的值。
你已经成功的获取了舞台上circle实例的x和y属性的值。
3.移动舞台上圆圈的位置,再次运行程序,你会看见显示面板中x和y的值变成了新的坐标位置的值(图1.13)。
4.在第一行代码的括号中插入引号,现在代码是这样的:
trace("circle_1.x");
trace(circle_1.y);
5.运行程序,注意显示面板中的第一行显示了字符串circle_1,第二行显示了数字(图1.14),因为你在trace中使用引号就表示你想输出字符串而不是访问circle_1实例的x属性。现在你学会了如何访问实例的属性,你可以尝试着修改代码。在继续我们的内容之前,把圆圈移动到舞台的左上方。
接下来,你将使用ActionScript设置的值来代替我们在属性面板中设置的值。当你运行程序时,ActionScript代码会立即替换circle_1实例x和y的值。
在访问对象的值时,你会使用值的名字进行访问,ActionScript会找到该属性名当前的值,并且将它替换成新的值。所有的MovieClip都包含很多属性。在这个例子里,你已经尝试了对象的x和y属性,这两个属性表示对象在舞台上的坐标位置。
当你想要改变某个变量的值时,你需要使用“=”来完成这个操作。
7.在动作面板里,用下面的代码代替原来的:
circle_1.x = 100;
circle_1.y = 200;
这段代码访问了circle_1实例的x和y属性,并且给它们设置了新的值,x属性表示的x坐标被设置成了100,而y坐标被设置成了200。
在circle_1和x、y属性中间的圆点表示你正在访问圆点前的实例的属性,这里很明显就是circle_1,这个圆点称之为点符号。你可以使用点符号访问对象的属性。
我想再说一下每行代码最后的分号。每一行ActionScript的结尾处的分号让ActionScript知道这是一段命令的结束。分号是必须的,请记住一定要在结尾加上它!
8.运行程序,注意,我们虽然把圆圈放在了左上角,坐标为(0,0),但是ActionScript会覆盖我们的默认设置,把圆圈定位到新的位置(图1.16),让我们增加一些代码来证明ActionScript是否做了这件事。
9.把下面高亮的代码写入到动作面板中:
trace("Before:");
trace(circle_1.x);
trace(circle_2.y);
circle_1.x = 100;
circle_1.y = 200;
trace("After:");
trace(circle_1.x);
trace(circle_2.y);
10.运行程序,注意,显示面板在程序刚开始运行时,显示出(0,0),但是赋值语句会将初始的(0,0)改变成为新的值。Flash播放器在圆圈坐标被改变后,会将它新的坐标显示出来(图1.17)。
你也许会问,为什么在程序运行的时候我没有看见圆圈出现在(0,0)位置。简单来说,是因为新坐标设置的命令执行的太快了,Flash播放器还没有机会来显示(0,0)位置的圆圈。之后,你会学习到如何进行属性的设置,让变化有动画效果。
有很多的属性你都可以用ActionScript来修改。表1.1中列出了最常用的属性。
在列表中,有一些属性的值是true和false。如果想要使用这些属性,你需要为它们赋值true或者false。参考visible属性的用法。
11.把下面的代码加到ActionScript的最后:
circle_1.visible = false;
注意false是没有双引号包裹的,这是一种特殊类型的值叫做Boolean(布尔型),在以后的章节中我们会学习到。
12.运行程序,你会注意到对象已经看不见了,实例实际上还是在那的,只是你告诉Flash播放器通过设置属性visible为false来将它隐藏(图1.18)。