Flash AS 入门-“影片剪辑”属性调整及路径解析
- 2022-02-04
- 来源/作者: PS.ONEGREEN.ORG / 佚名
- 2 次浏览
这篇教程为“Flash AS 入门教程”的一部分。查看全套教程>>>>。
源文件下载
本节应掌握的知识要点:
①影片剪辑属性调整;②相对路径、绝对路径的应用;③赋值运算符“=”应用;④了解算术组合赋值运算符“+=”、“-=”、“*=”、“/=”。
属性概念是我们生活中随处可见的,各种物体都有自己的属性,比如我们的食用水,它的自然属性是透明、无色、无味的液体,这些属性通过一些加工手段是可以改变的,加入调色剂可以使它的透明度和色泽发生变化,加入调味剂可以改变它的味道,放入冰箱冷冻可以让它凝固成冰块。
在Flash 中,影片剪辑对象也有自身的许多属性,比如坐标位置、透明度、大小、旋转角度等等,运用动作脚本语句可以对其属性进行修改调整。
路径概念在前面已经接触过了,我们将在这一节里加深理解。 请看示例动画“实例1-4”。
>>>>>点击查看动画效果<<<<<
实例1-4 “影片剪辑”属性调整
我们先分析画面层次结构:画面很简单,在黄蓝色相间的主场景(_root)上,右下角放有几组按钮,中间有一个实例名为“huan_mc”的影片剪辑,“huan_mc”影片剪辑中还嵌套了一个实例名为“shu_mc”的影片剪辑,shu_mc影片剪辑里有一个圆形、一只小松鼠和4只按钮。
把鼠标分别移到各个按钮上,可以显示按钮上设置的动作,点击主场景上的按钮和shu_mc影片剪辑里的按钮,可以分别控制各级影片剪辑的相应属性。
从绝对路径控制影片剪辑属性:
下面我们先来看看通过主场景上按钮的release事件对影片剪辑huan_mc进行属性控制。
主场景上的一组蓝色按钮控制的是huan_mc的透明度属性:
_alpha : 透明度属性,以百分比为单位。
蓝色减号“-”按钮上的语句:
on (release) {
_root.huan_mc._alpha = 50;
} //点击按钮时,将场景上的huan_mc影片剪辑透明度设为50
蓝色加号“+”按钮上的语句:
on (release) {
_root.huan_mc._alpha = 100;
} //点击按钮时,将场景上的huan_mc影片剪辑透明度设为100。
这一组按钮的语句很简单,直接将一个常量赋值给场景上的huan_mc影片剪辑对象的透明度属性。
主场景上的一组红色按钮控制的是huan_mc的纵、横向缩放比例属性:
_xscale 影片剪辑的横向缩放比例,以百分比为单位。
_yscale 影片剪辑的纵向缩放比例,以百分比为单位。
红色加号“+”按钮上的语句:
on (release) {
_root.huan_mc._xscale = _root.huan_mc._xscale*1.1;
_root.huan_mc._yscale = _root.huan_mc._yscale*1.1;
}
红色减号“-”按钮上的语句:
on (release) {
_root.huan_mc._xscale = _root.huan_mc._xscale*0.9;
_root.huan_mc._yscale = _root.huan_mc._yscale*0.9;
}
这一组按钮上的语句中,属性的取值就不是一个简单的常量了,而是通过两个表达式计算出对象的纵、横向缩放比例,如“_root.huan_mc._xscale*1.1”,计算的结果就是横向缩放比例为场景上的huan_mc横向缩放比例的1.1倍即110%。再将这个结果赋值给表达式左边指定的影片剪辑对象的相应属性,点击一次按钮就会计算一次,由此令该影片剪辑对象按照每一次计算出的比例进行纵、横向等比例缩放。
下面再来看看主场景上的一组绿色“上”、“下”、“左”、“右”按钮,这一组按钮控制的是位于huan_mc内部的shu_mc的纵、横坐标属性。
_x 影片剪辑的横坐标属性,单位为像素。
_y 影片剪辑的纵坐标y 坐标,单位为像素。
绿色“向上”按钮上的语句:on (release) {
_root.huan_mc.shu_mc._y = _root.huan_mc.shu_mc._y-10;
}
当点击鼠标时,即由右边的表达式计算出“shu_mc”的y(纵)坐标位置,然后赋值给shu_mc的纵坐标属性,如shu_mc在场景上的初始x、y位置为(0,0),第一次点击鼠标,shu_mc的位置变为(0,-10),即上移10个像素。每点击一次,上移10个像素。
其他“向下”、“向左”、“向右”3个按钮同理。
主场景右下角绿色加号“+”、减号“-”按钮控制的是主场景(_root)的纵、横向等比例缩放,每点击一次减号“-”按钮,主场景按90%的比例缩小,点击加号“+”按钮,比例还原到100%。
从相对路径控制影片剪辑属性:
以上所述,主场景上的按钮都是以绝对路径的方式控制各级影片剪辑的相关属性。绝对路径在前面的内容里已经学习过。下面我们再来看看位于“shu_mc”影片剪辑内部的按钮是如何控制影片剪辑属性的。
分别点击两个红色按钮,可以调整huan_mc影片剪辑的纵、横向等比例缩放,分别点击两个绿色按钮,可以控制主场景的纵、横向等比例缩放,与主场景上相应按钮的控制效果相同,但是,它们路径的指向却有所不同。
红色加号“+”按钮上的语句:
on (release) {
this._parent._xscale = this._parent._xscale*1.1;
this._parent._yscale = this._parent._yscale*1.1;
}
红色减号“+”按钮上的语句:
on (release) {
this._parent._xscale = this._parent._xscale*0.9;
this._parent._yscale = this._parent._yscale*0.9;
}
与主场景上红色按钮的语句不同之处是,路径不一样,前者使用标识符“_root”指定绝对路径,而这里是以标识符“this”和“_parent”指定相对路径,这是我们这一节要掌握的又一个知识点。
this 当将其附加到按钮的 on 事件动作中时,它指向的是包含该按钮的影片剪辑的时间轴。
_parent 当将其附加到按钮的 on 事件动作中时,它指向的是包含该按钮的影片剪辑时间轴的上一级时间轴,即父时间轴。
比如红色按钮上的“this._parent”,this指向的就是包含了按钮的“shu_mc”影片剪辑的时间轴,“_parent”指向的是包含了按钮的“shu_mc”影片剪辑的上一级影片剪辑的时间轴,即“huan_mc”影片剪辑时间轴。
所以,当点击位于“shu_mc”中的红色按钮时,它控制的是“huan_mc”的纵、横向等比例缩放属性。
再看位于“shu_mc”中的绿色按钮上的语句:
绿色减号“-”按钮上的语句:
on (release) {
this._parent._parent._xscale = this._parent._parent._xscale*0.9;
this._parent._parent._yscale = this._parent._parent._yscale*0.9;
}
绿色加号“+”按钮上的语句:
on (release) {
this._parent._parent._xscale = 100;
this._parent._parent._yscale = 100;
}
这里,又多了一级“_parent”,按照上面的路径分析,“_parent._parent”指向的就应该是包含了按钮的“shu_mc”影片剪辑的上一级“huan_mc”影片剪辑的上一级时间轴,即主场景“_root”的时间轴。
所以,当点击按钮时,控制的是主场景时间轴的等比例缩放。
路径小结:
这个实例,主场景上的按钮都是由外向内通过绝对路径的方式分别控制各个级别影片剪辑对象的属性,而嵌套在影片剪辑内部的按钮则是由内向外通过相对路径的方式控制各级父级影片剪辑的属性。
事实上,绝对路径与相对路径的区别是到达目标对象的出发点不同,绝对路径是以当前主场景(即根时间轴)为出发点,以目标对象为结束点;而相对路径则是从发出指令的对象所在的时间轴为出发点,以目标对象为结束点。
理解了路径的概念,我们就可以灵活的运用了。比如上面实例中的所有按钮,其实都可以分别运用绝对路径和相对路径的方式来实现相同的控制效果。
以shu_mc里嵌套的按钮为例,我们把绿色减号“-”按钮上控制主场景横向缩放比例的语句改成绝对路径方式:
this._parent._parent._yscale 可以写成 _root._yscale
在熟悉了路径概念,并能加以灵活应用之后,语句是可以加以简化的,比如:
_root.huan_mc._alpha = 100; 可以写成 huan_mc._alpha = 100;
this._parent._parent._yscale = 100; 可以写成 _parent._parent._yscale = 100;
路径的概念非常重要,在添加动作时,如果路径的指向不正确,就实现不了预期的效果,甚至会引起程序出错。
关于设置属性的语法格式,我们再补充一点内容,本节实例中是按照面向对象编程的形式,用点语法的格式写的语句,as中还可以用setProperty()函数来为影片剪辑设置属性:
setProperty(要设置其属性的影片剪辑实例名称的路径, 要设置的属性, 属性的新值/计算结果为属性新值的公式)
比如以下语句是等同的:
_root.huan_mc.shu_mc._y = _root.huan_mc.shu_mc._y-10;
setProperty(_root.huan_mc.shu_mc, _y, _root.huan_mc.shu_mc._y-10);
赋值运算符“=”:
这一节出现的等号“=”是前面没有接触过的。这个等号“=”是一个“赋值运算符”,不表示相等,相等运算符是两个连接的等号“==”,赋值运算符“=”的作用是将等号“=”右边的数值或者通过表达式计算的结果赋给左边的变量或者对象,比如上面的huan_mc._alpha = 100;
这一节中的语句,我们还可以用“算术组合赋值运算符”来表示 :
加法赋值运算符“+=”:
格式是:数值(或者字符串)1 += 数值(或者字符串)2
将数值(或者字符串)1 + 数值(或者字符串)2 的值赋予数值(或者字符串)1。比如,x = x + y用加法赋值运算符表示就是 x += y
也可以是计算结果为数值的表达式,例如,下面两个语句的结果是相同的:
_root.huan_mc.shu_mc._y = _root.huan_mc.shu_mc._y+10;
_root.huan_mc.shu_mc._y +=10;
减法赋值运算符“-=”:数值(或计算结果为数值的表达式)1 – 数值(或计算结果为数值的表达式)2的值赋予数值(或计算结果为数值的表达式)1。例如,下面两个语句是相同的:
_root.huan_mc.shu_mc._y = _root.huan_mc.shu_mc._y-10;
_root.huan_mc.shu_mc._y- =10;
还有相乘赋值运算符“*=”,除法赋值运算符“/=”等等。
课后练习:素材源文件下载
课后练习素材源文件中,有三对按钮,两只蓝色按钮是放在主场景上的,两只红色按钮是嵌套在huan_mc影片剪辑里面的,两只绿色按钮是嵌套在shu_mc影片剪辑里面的,按以下要求为按钮添加控制语句:
1.用相对路径方式为三只向左按钮添加语句,每点击一次控制shu_mc影片剪辑左移10个像素;
2.用绝对路径方式为三只向右按钮添加语句,每点击一次控制shu_mc影片剪辑右移10个像素。
这个练习简单,重点是理解相对路径和绝对路径。
效果如练习4所示:
>>>>>点击查看动画效果<<<<<
练习4
这篇教程为“Flash AS 入门教程”的一部分。查看全套教程>>>>。