1 / 35

第七章 动作脚本进阶

第七章 动作脚本进阶. 主讲:王玉姝. MovieClip (电影剪辑)控制. 1 . MC 属性控制 ( 1 ) MC 属性简介 _alpha : 电影剪辑实例的透明度。有效值为 0 (完全透明)到 100 (完全不透明)。 _rotation : 电影剪辑的旋转角度(以度为单位)。从 0 到 180 的值表示顺时针旋转,从 0 到 -180 的值表示逆时针旋转。.

nura
Télécharger la présentation

第七章 动作脚本进阶

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 动作脚本进阶 主讲:王玉姝

  2. MovieClip(电影剪辑)控制 1.MC属性控制 (1)MC属性简介 • _alpha:电影剪辑实例的透明度。有效值为 0(完全透明)到100(完全不透明)。 • _rotation:电影剪辑的旋转角度(以度为单位)。从0到180的值表示顺时针旋转,从0到-180的值表示逆时针旋转。

  3. _visible:确定电景剪辑的可见性,当MC的_visible的值是True(或者为1)时,MC为可见;当MC的_visible的值是false(或者为0)时,MC为不可见。_visible:确定电景剪辑的可见性,当MC的_visible的值是True(或者为1)时,MC为可见;当MC的_visible的值是false(或者为0)时,MC为不可见。 • _height:影片剪辑的高度(像素为单位)。 • _width:影片剪辑的宽度(像素为单位)。

  4. _xscale:影片剪辑的水平缩放比例。 • _yscale:影片剪辑的垂直缩放比例。 • 当_xscale和_yscale的值在0~100之间,是缩小影片剪辑百分数;当_xscale和_yscale的值大于100时,是放大原影片剪辑;当_xscale或_yscale为负时,水平或垂直翻转原影片剪辑并进行缩放。

  5. 不要把影片剪辑的高度与垂直缩放比例混淆,也不要把影片剪辑的宽度与水平缩放比例混为一谈,例如:不要把影片剪辑的高度与垂直缩放比例混淆,也不要把影片剪辑的宽度与水平缩放比例混为一谈,例如: • MC._width=50//表示把MC的宽设置为50像素; • MC._xscale=50//表示把MC的水平宽度设置为原来水平宽度的50%。 • _x:影片剪辑的x坐标(整数)。 • _y:电景剪辑的y坐标(整数)。

  6. (2)getProperty()setProperty()命令 • 这两个命令在【动作】面板中【全局函数】|【影片剪辑控制】类别下。 • setProperty()命令用来设置MC的属性,它的一般使用形式为: • setProperty(目标,属性,值);

  7. 命令中有三个参数: • 目标:就是要控制(设置)属性的MC的实例名,注意包括MC的位置(路径)。 • 属性:即要控制的何种属性,例如透明度、可见性、放大比例等。 • 值:属性对应的值,包括数值、布尔值等。 • 例如: • setProperty(“_root.mc.mc1”,_visible, false);//表示把影片mc下一个实例名为mc1的影片设置为不可见。

  8. setProperty("_root.dm",_rotation,30);//表示要使实例名叫dm的影片剪辑转动30度。setProperty("_root.dm",_rotation,30);//表示要使实例名叫dm的影片剪辑转动30度。 • getProperty()命令用来获取MC的属性,它的一般使用形式为: • getProperty(目标,属性); • 命令中有两个参数: • 目标:被取属性的MC实例的名称; • 属性:要取得的MC的属性。

  9. (3)使用点语法存取属性值 可以用“.”点语法来设置或取得MC的属性 • 影片剪辑名称.属性=属性值。 例子: • setProperty(“_root.mc.mc1”,_visible, false); • 可以写成: • _root.mc.mc1._visible=false; • setProperty("_root.dm",_rotation,30);

  10. 可以写成: • _root.dm._rotation=30; • mx= getProperty(“_root.mc.mc1”,_x); • 可以写成: • mx= _root.mc.mc1._x; • setProperty("_root.dm1",_y, getProperty("_root.dm0",_y)); • 可以改写成两句: • my=_root.dm0._y; • _root.dm1._y=my;

  11. (4)MC属性控制实例 步骤1 创建元件 • 新建一个名字为“蝴蝶”的影片剪辑元件。拖放在场景的中心位置。 步骤2 布局场景 • 返回到主场景,将【图层1】重新命名为“背景”,将一个背景图像导入。 • 新建图层,命名为“蝴蝶”。拖出“蝴蝶”影片剪辑元件,在【属性】面板中命名为x1。

  12. 添加图层,命名为“动态文本”。在第1帧建两个动态文本,在【属性】面板中定义它们的变量名为zb和hw。添加图层,命名为“动态文本”。在第1帧建两个动态文本,在【属性】面板中定义它们的变量名为zb和hw。 • 新增一个图层,并命名为“按扭”。在这个图层上,从【库】面板中拖出17个按扭实例 ,在每个按钮下添加相应的静态文本加以说明。

  13. 步骤3 定义动作脚本 • 选中“可见”按扭,定义它的动作脚本为: on (press) {     x1._visible=1;//也可以写成:x1._visible=true } • 其他按钮脚本详见书上

  14. 键盘控制 1.键盘对象的方法详解 Key对象包括以下6种常用的方法: (1)Key.getAscii() 语法:Key.getAscii(); 功能:返回最近被按下或松开的按键所代表的ASCII值。 • 通过Key.getAscii()方法可精确地传回字符值。当键盘上有键被按下时,该按键会对应到一个ASCII码,

  15. (2)key.getCode() 语法:key.getCode(); 功能:返回最近被按下或松开的按键的对应码。 用户只想知道是否按下某个键而不理会它的ASCII值,key.getCode()最适合用。Flash替每个按键都赋予一个码,例如,按键A的对应码是65,按键Shift的对应码是16。key.getCode()的返回值就是这些按键的对应码。

  16. Flash事先定义了一组常量(Key对象的属性)来存储一些常用键按键的对应码,书上 表7-2-1所示。 (3)key.isDown() 语法:key.isDown(keyCode); 功能:侦测键盘上指定的按键是否被按下,如果返回值为true则表示被按下。

  17. 4)key.isToggled() 语法:key.isToggled(keyCode); 功能:侦测键盘上的Caps Lock或Num Lock的指示灯是否亮着。 例如: onClipEvent(enterFrame){ if(key.isToggled(144){      this.stop(); } }键盘上的Num Lock指示灯是亮着时,影片对象动画停止。

  18. (5)key.addListener() 语法:key.addListener(实例名); 功能:将某个对象赋予响应按键事件功能,实例名可以是指定的按钮、影片剪辑(包括_root)、文字字段甚至是自定义对象的实例名称。 自定义对象和文字字段对象等,可以用key.addListener()方法,赋予它们接收和处理按键信息的能力。Key对象提供onKeyDown和onKeyUp两个事件处理程序,让通过key.addListener()方法指定响应Key事件的实例使用。

  19. (6)key.removeListener() 语法:key.removeListener(实例名); 功能:取消指定实例响应Key事件的功能。

  20. 2.键盘控制实例1——用空格键控制白兔的跑动2.键盘控制实例1——用空格键控制白兔的跑动 (1)创建影片界面 步骤1 创建影片文档 • 新建一个影片文档,设置舞台尺寸为 步骤2 创建背景 • 从外部导入一幅背景图像将【图层1】重新命名为“背景”,调整背景的大小,与舞台尺寸相匹配。

  21. 2)制作MC元件 步骤1 制作白兔MC • 新建一个为“tutu”的影片剪辑元件。在这个MC元件绘制一只白兔图形,定义关键帧实现了白兔眼睛和耳朵的动画。 步骤2 制作移动的白兔MC • 新建一个为“tutu_run”的影片剪辑元件。将【库】面板中的“tutu”MC元件拖放到场景中间,然后创建白兔移动的动作补间动画。

  22. (3)定义动作脚本 步骤1 布局元件 • 返回到【场景1】,新建一个图层,并将这个图层,命名为“白兔跑动”。将【库】中的“tutu_run”影片剪辑元件放到舞台的右边。 • 定义“tutu_run”实例 脚本。参见书上

  23. 键盘控制实例2——用左右方向键控制白兔移动键盘控制实例2——用左右方向键控制白兔移动 • 在实例1的基础上制作实例2 • 从 “ 实例1”源文件的 库 中,将“tutu”元件导入到当前文件的库 中,得到一个白兔C 元件。 • 新建一个图层,并重新命名为 “白兔 ”。将【库】面板中的白兔MC元件拖放到舞台的合适位置。 • 选择这 个白兔MC 实 例,在【属性】面板中定 义它的名称为“tuL ”。 • 复 制 并 翻 转 白 兔 MC 元件 • 选择舞台上的白兔MC实例,复制它,选中复制出 来的白兔,执行【修改】【 变 形】 |【水平翻 转 】命令,将它水平翻转 。

  24. 选择这个翻转得到的白兔实例,在【属性】面板中定义它的名称为“tuR ”。 ( 3)定义动作脚本 • 选择名字为“tuL”的白兔实例,在【动 作】面板中定义它的动作脚本为: onClipEvent (load) { movie_x = this._x; _ root.tuR._visible = false; • }

  25. onClipEvent (keyDown) { • if (Key.isDown(Key.LEFT)) { • movie_x -= 10; • this._x = movie_x; • this._visible = true; • _root.tuR._visible = false; • } • } • 其它代码参看教材

  26. 第三节 声音控制和智能动画片断 1 .滑杆控制声音音量 • 在动画作品中,音量控制是非常常见 的,制作方法有很多。下面我们制作一个实例,采用一种很逼真的“ 滑杆控制器” 。 • 本例涉及到【库 】操作中的一个高级应用:元件的 “捆绑” 使用技 术 。 (1)关于“ 滑杆控制器 ” • 打开【窗口】 | 【其他面板】|【公用库 】菜 单,在菜单中有一个【按钮】项,单击它,弹出 “按钮 公用库 ”。 • 在【库-按钮】面板中,选择其中的【fader-ixer】影片剪辑,并把它拖到场景中。

  27. 看看“fader-mixer”实例的内部结构,建议你 打开一个新文档,把“fader-mixer” 拖进“场景”。 • 进入“ fader-mixer”的编辑界面,我们看到一个名叫“Fader”的MC,选择它,打开【动作】面板, 这是“Fader” 的运行代 码,代码的意思是,当这 个MC运行时: • 把它的“y轴”坐标值赋给变量 “ inity ” ; • 把它的“ x轴 ” 坐标值赋给变量 “ left ” ; • 把它的“ x轴 ” 坐标值赋给变量 “ right ” ; • 把它的“ y轴 ” 坐标值赋给变量 “ top ” ; • 把它的“ y轴 ” 坐标值“加100 ”赋给变量 “bottom”; 以上代 码不用自己编写,它是Flash随“滑杆控制器 ” MC一同提供给用户的,在实际应用时必不可少。

  28. 本例在使用这个“滑杆控制器”MC 时,需要提醒 你注意的有2条:一是为了使“Fader”被拉动时保 证仅 限于上、下动,左右不动,所以把 “x轴 ”座 标值同时赋予变量“left ”和“right” ;二是为了使“Fader”拉动到“顶部”或“底部”时更“到位”所以要在原来的“坐标值 ”上加“100 ”,“100 ”是“Fader”的高度。

  29. ( 2) 关 于 链 接 声 音 • 让这个MC 组件为音量控制服务。要达到这个目的有一个困难:音乐是个特殊的元件,它的实例 应用一般通过“帧属性”设置,这样显然不能使滑杆控制” 与其联系起来,所以,我们先得把音乐 “实例化”,使音乐成为“舞台”中的一个对象。 • 打开源文件:“滑杆控制 .fla ”,从【 库 】中找到音乐元件,用鼠标右键单击它。在 弹 出的菜单中选择【链接】,打开【链接属性】 对话框,设置输入音乐的实例名为 “mysound” ,并 选择【链接】为【为动作脚本导出】和【在第一 帧导出】。

  30. (3)将声音实例和“ 滑杆控制器” 联系起来 • 需把“mysound”与 “滑杆控制器”联系起来就完成任务了,这种联系是通过几段并不复杂的代码进 行的,在讲解这些代码前,请熟悉一下其中主要几个指令的含义 : • und.attachSound("idName") • 是一个Flash的“方法” ,它将名为“idName” 的声 音附加(捆绑)到指定的音乐对象,在本例中,我们已经命名为 “mysound” 。 • und.start([secondOffset, loop]) • 这条指令能使前一条指令立即生效,即播放音 乐 。 其中 “secondOffset” 是一个可选参数,使 可以从某个指定时间播放声音, “loop ” 是一个 可选参数,指定声音连续 播放的次 数 。

  31. und.setVolume(volume) • 这条指令用来设置音乐对象的音量 。 “volume ” 是一个从 “ 0 ” 到 “100” 之间的数字,表示声音级别。 “100” 为最大音量,而“0”为没有音量。 • und.getVolume() • 这条命令与上一指令相反,它为返回音量 级别,也是一个从 “ 0”到“ 100 ” 之间的整数。 • getProperty(instancename , property) • 是获取MC的某种属性,“instancename ” 为MC的实例名称 。

More Related