这是来自北京希望电子出版社的《FLASHMX ActionScript标准教程》
在Macromedia Flash MX 动作面板中开辟了一个专门的Properties(属性)分类来方便用户调用属性。这些属性可以应用于时间轴、电影剪辑和按钮对象,如图:

_alpha 电影剪辑实例的透明度值。透明度值的取值范围为0~100。0表示完全透明,100表示完全不透明。在舞台上可以通过属性检查器设置对象的透明度属性,如图:
 提示:透明度为0的对象虽然不可见,但是它仍然处于激活状态。按钮被单击依然会有响应。 _currentrfame 播放磁头当前位置的帧编号。时间轴中的帧编号以5为单位递进。 _droptarget 使用斜杠语法表示的电影剪辑实例的绝对路径。该电影剪辑实例将作为可拖动电影剪辑的目标投放位置。 _focusrect 指示具有焦点的电影剪辑是否有黄色矩形环绕,该属性默认值为true。 _framesloaded 从流式电影中载入的帧数。 _height 电影剪辑实例的高度,以象素为单位。 _name 电影剪辑实例的实例名。 _quality 设置电影的显示质量。 _rotation 电影剪辑实例的旋转角度,如图:
 上面的实例相对于源实例旋转了45o。 _soundbuftime 声音播放的缓冲时间,以秒不单位。 _target 电影剪辑实例的目标路径。 _totalframes 电影剪辑实例中的总帧数。 提示:使用(_framesloaded/_totalframes)*100%可以获得电影的下载进度比例。 _url 要下载的电影剪辑所在SWF文件的URL地址。 _visible 确定电影剪辑实例是否可见的逻辑值。 _width 电影剪辑实例的宽度,以象素为单位。 _x 电影剪辑中的x坐标。 _xmouse 电影剪辑实例中光标的x坐标。 _xscale 指定电影剪辑横向缩放百分比的值。 _y电影剪辑实例中的y坐标。 _ymouse 电影剪辑实例中光标的y坐标。 _yscale 指定电影剪辑纵向缩放百分比的值。 电影剪辑属性的利用示例
下面将综合利用电影剪辑的_x,_y,_visible,_rotationt等属性,设计一个“扑蝶”的游戏。如图: 在这个游戏中,蝴蝶是不定期出现的,最长间隔时间为4秒,最短为1秒。蝴蝶每次出现的位置和旋转属性也是随机变化的。当蝴蝶出现时,用户可以单击网套住蝴蝶,每套住一次,蝴蝶闪烁一次(迅速隐藏显示,随即还原),同时计数器加1。如上图左上角显示用户已经套住了12次蝴蝶。
要制作上述游戏,请按以下步骤作: (1) 导入或绘制蝴蝶图象、背景图象、网套图形。 (2) 选中蝴蝶图象,按F8键转换为电影剪辑符号,然后在属性检查器中将其命名为fly,如图: (3) 选中网套图形,按F8键转换为按钮符号,然后在属性检查器将其命名为p,如图: (4) 使用绘图工具箱中的文本工具在舞台上添加一个动态文本域,注意在文本域的属性检查器中设置Var(变量)为sum,如图:
 (5) 选中舞台上的网套图形实例,在Flash MX动作面板中为其附加以下动作: on(press){ startDrag(“_root.p”true); if (_root.fly.hitTest(_root.p)==true){ _root.fly.visible = false; _root.sum = _root.sum+1; } } on (release) { _root.fly._visible = true; } 如图:
 脚本注解: on(press){ //用户使用鼠标按住时,它和后面的on(press)语句构成一个完整的单击动作。 startDrag(“_root.p”true); //当用户单击网套图形实例,即可拖动该实例。 if (_root.fly.hitTest(_root.p)==true){ //hitTest方法可以判断两个对象是否有交叉区域,如果返回值为true, 说明网套图形已经被拖动到蝴蝶电影剪辑实例上。在MovieClip对象的Methods(方法)列表中可以找到hitTest,如图:
 _root.fly.visible = false; //为了告诉用户,蝴蝶已经被套住,在这里选择了使蝴蝶电影剪辑实例消失。 _root.sum = _root.sum+1; 动态文本域中的数值递增1,表示又一只蝴蝶被套住。 on (release) { //用户释放鼠标左键时。 _root.fly._visible = true; 蝴蝶电影剪辑实例_root.fly的_visible(可见性),属性还原为true,这一句必须添加,否则在用户套住一次蝴蝶之后,蝴蝶电影剪辑实例将永久隐藏。 (6) 选中舞台上的蝴蝶电影剪辑实例,在Flash MX运作面板中为其附加以下动作: onClipEvent (enterFrame) { total = Math.floor(getTimer()/1000); atime = random(4)+1; if ( total-pause==atime){ _root.fly._x = random(550); _root.fly._y = random(400); _root.fly._rotation = random(90); pause = pause+atime; } } 如图所示:
 脚本注解: onClipEvent (enterFrame) { //进入当前帧时,该事件的特点是可以不断执行。 total = Math. floor(getTimer()/1000); // getTimer()/1000 可以获取自从电影播放以来所经过的时间(秒数值)。使用Math.floor方法可以对秒数值进行取值,最终结果将存储在total变量中。 提示:Math. floor方法可以从Math.对象列表中找到 ,如图:
 atime = random(4)+1; //atime的取值范围为1~4,这个变量实际上将控制着蝴蝶电影剪辑的出现频率,最长间隔为4秒,最短为1秒 if ( total-pause==atime){ //pause 表示已经流逝的时间,因为蝴蝶电影剪辑按间隔时间出现将会有多次,所以,它的出现时间必须减去已经流逝的时间。初始情况下,pause变量为0,但是在执行一次之后,下面的pause = pause+atime;语句可以将间隔时间atime 不断累加到流逝的时间中。 _root.fly._x = random(550); //使用random函数随机产生蝴蝶电影剪辑实例的水平位置。ramom函数可以在Deprcated(不鼓励使用的项目)>Functions(函数)列表内找到,如图所示:
 _root.fly._y = random(400); //使用random函数随机产生蝴蝶电影剪辑实例的纵向位置。 _root.fly._rotation = random(90); //使用random函数随机产生蝴蝶电影剪辑实例的旋转属性。random(90)表示旋转角度在90o以内。 pause = pause+atime; //它可以将每次执行的间隔时间累加起来,形成流逝时间。使用总的播放时间减去流逝的时间,便可以得到新的间隔时间。 要测试电影效果,可以按F12键在浏览. 提示:可以继续按以上思路,添加一个计时控件,限定游戏者必须在1分钟内套住若干次蝴蝶。 效果:
点击浏览该文件
|
|