




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章网络游戏与交互式影片10.1创建自定光标10.2获取鼠标位置10.3捕获按键10.4设置颜色值10.5创建声音控件10.6检测冲突10.7思考与练习
10.1创建自定光标标准光标就是用户的鼠标指针在操作系统屏幕上的表示。通过使用在Flash中设计的光标来代替标准光标,可以将用户的鼠标运动更紧密地集成到影片环境中。本节的范例使用的是一个看起来如同大箭头的自定光标。不过,此功能的强大与否取决于我们制作各种形态自定光标的能力,例如射门的足球,或盖在沙发上可改变颜色的织物布样。要创建自定光标,可在舞台上设计该光标的影片剪辑,然后在动作脚本中隐藏标准光标,并跟踪自定光标的移动。要隐藏标准光标,可使用内置Mouse对象的hide方法。要使用影片剪辑作为自定光标,可使用startDrag动作。要查看自定光标的动画演示,可用鼠标滑过后面的影片。创建自定光标的具体步骤如下:(1)创建一个要用作自定光标的影片剪辑。(2)在舞台上选择该影片剪辑实例。(3)如果此时没有看到“动作”面板,可选择“窗口”→“动作”打开它。(4)要隐藏标准光标,可在“动作”工具箱中单击“对象”类别,然后单击“影片”类别,再单击“Mouse”,之后单击“方法”,最后双击“hide”。代码如下:onClipEvent(load){ Mouse.hide();}(5)要应用新指针,可在“动作”工具箱中单击“动作”类别,然后单击“影片剪辑控制”,之后双击“startDrag”。(6)要限制鼠标移动,可选择“表达式”框,并为目标键入this。然后选择“锁定鼠标到中央”和“限制为矩形”,最后输入值。例如,我们可能输入如下值:左:0 上:46 右:400 下:280具体代码如下所示:onClipEvent(load){ Mouse.hide(); startDrag(this,true,0,46,400,280);}(7)选择“控制”→“测试影片”来测试自定光标。当使用自定光标时,按钮仍然起作用。将自定光标放在时间轴的顶层是一个很好的方法,这样在影片中移动鼠标时,它就可以在按钮和其他对象的前面移动。10.2获取鼠标位置跟踪鼠标位置可使我们了解用户在影片中移动的信息。这些信息使我们能够把用户行为和影片事件联系起来。可以使用_xmouse和_ymouse属性找到影片中鼠标指针(光标)的位置。每个时间轴都有一个_xmouse和_ymouse属性,这些属性返回的是鼠标在其坐标系统内的位置,该位置始终是相对于注册点而言的。对于主时间轴(_level0),注册点是在左上角。要查看主时间轴内的_xmouse和_ymouse属性和影片剪辑时间轴,可运行后面的影片并移动鼠标。右侧已更新的坐标反映出在这个小的影片剪辑中鼠标相对于注册点的位置。左侧的坐标反映出在大的主影片中该鼠标的位置。
1.获取主时间轴内的当前鼠标位置(1)创建两个动态文本框,然后将它们命名为x_pos和y_pos。(2)如果此时没有看到“动作”面板,可选择“窗口”→“动作”打开它。(3)要返回主时间轴内的鼠标位置,可在_level0影片的任意帧中添加如下代码:x_pos=_root._xmouse;y_pos=_root._ymouse;变量x_pos和y_pos被用作保留鼠标位置值的容器。可以在文档的任何脚本中使用这些变量。在下面的代码中,用户每次移动鼠标时都会更新x_pos和y_pos的值:onClipEvent(mouseMove){x_pos=_root._xmouse;y_pos=_root._ymouse;}
2.获得影片剪辑内的当前鼠标位置(1)创建影片剪辑。(2)在舞台上选择该影片剪辑实例,并使用属性检查器将它命名为myMovieClip。(3)如果此时没有看到“动作”面板,可选择“窗口”→“动作”打开它。(4)使用影片剪辑的实例名称来返回主时间轴内的鼠标位置。例如,下面的语句可以放置在_level0影片中任意时间轴上,从而返回myMovieClip实例中的_ymouse位置:x_pos=_root.myMovieClip._xmousey_pos=_root.myMovieClip._ymouse该代码返回鼠标相对于注册点的_xpos和_ypos值。(5)选择“控制”→“测试影片”来测试影片。也可以通过在剪辑事件中使用_xmouse和_ymouse属性来确定鼠标在影片剪辑内的位置,如下面的代码所示:onClipEvent(enterFrame){xmousePosition=_xmouse;ymousePosition=_ymouse;}10.3捕获按键我们可以使用内置的Key对象的方法来检测用户上次按下的键。Key对象不需要构造器函数;要使用它的方法,只需调用该对象自身即可,代码如下: Key.getCode();键盘上的每一个实际的按键都有一个虚拟键控代码。例如,向左箭头键的虚拟键控代码为37。通过使用虚拟键控代码,可以确保影片的控制在每个键盘上都相同,而不用考虑语言或平台。要获得上次所按键的虚拟键控代码,可使用getCode方法。要获得上次所按键的ASCII值,可使用getAscii方法。ASCII(美国信息交换标准码)值分配给每个字符集的前127个字符。ASCII值提供了有关屏幕上字符的信息。例如,字母“A”和字母“a”有不同的ASCII值。要确定使用哪些键并确定它们的虚拟键控代码,可使用下面任一种方式:●参阅键盘键和键控代码值中的键控代码列表。●使用Key对象常数,即在“动作”工具箱中,单击“对象”类别,然后单击“影片”,之后单击“Key”,最后单击“常数”。●指定下面的剪辑动作,然后选择“控制”→“测试影片”,最后按下所需的键。onClipEvent(keyDown){ trace(Key.getCode());}这样,所需键的键控代码会显示在“输出”窗口中。通常是在事件处理函数内使用Key对象方法。在下面的影片中,使用箭头键移动汽车。Key.isDown方法表明了正被按住的键是向左箭头、向右箭头、向上箭头,还是向下箭头。事件处理函数onEnterFrame通过if语句确定Key.isDown(keyCode)的值。根据该值,处理函数会指示FlashPlayer更新汽车的位置,并显示方向。下面的步骤用一个汽车示例显示了如何创建一个能被键盘激活的影片剪辑:(1)在舞台上创建一个影片剪辑,该影片剪辑将会随键盘箭头的活动而移动。在此示例中,影片剪辑的实例名称为car。(2)在舞台上创建一个随汽车方向更新的动态文本框。使用属性检查器,给它指定一个变量名display。注意:不要把变量名和实例名混淆。(3)在时间轴上选择第1帧,如果没有看到“动作”面板,则选择“窗口”→“动作”来打开它。(4)要设置每次按键时汽车穿过屏幕的速度,可在“动作”工具箱中单击“动作”类别,然后单击“变量”,之后双击setvariable,并将该变量命名为speed。最后选中“值”的“表达式”选项,输入一个值10。(5)要创建处理事件及其后续行为的事件处理函数,可在“动作”工具箱中单击“对象”类别,然后单击“影片”、“MovieClip”和“事件”,最后双击onEnterFrame,输入car作为对象名称。(6)在“参数”文本框单击以放置插入点。接着单击“动作”类别,之后单击“变量”类别,最后双击with,输入car作为对象名称。代码如下所示:speed=10;car.onEnterFrame=function(){with(car){}};(7)要向事件处理函数中添加条件,可在“动作”工具箱中单击“动作”类别,然后单击“条件/循环”,最后双击if。(8)在“条件”文本框单击以放置插入点。单击“对象”类别,然后单击“影片”、“Key”和“方法”,之后双击isDown。接着单击“对象”类别,再单击“影片”、“Key”和“常数”,之后双击键控代码的RIGHT。代码如下:speed=10;car.onEnterFrame=function(){with(car){if(Key.isDown(Key.RIGHT)){}}};接下来,如果Key.isDown(Key.RIGHT)评估为true,则if语句需要参数才能执行。换句话说,如果按下向右箭头键,则汽车应向右移动,即_x属性应该增大。同时,单词Right应该显示在影片中,所以动态文本框需要做相应的更新。(9)要输入条件语句,可在“动作”工具箱中单击“运算符”类别,然后单击“赋值”,并将“+=”拖动到脚本窗格的第5行(在if语句的两个括号之间)。在“表达式”文本框中输入下面的代码:_x+=speed;(10)要将汽车限制在影片的右边缘之内,可添加一条嵌套if语句。在"动作"工具箱中,单击"动作"类别,然后单击"条件/循环",之后将if语句拖到脚本窗格的第6行。在"条件"文本框中输入以下代码:_x>339;(11)单击“动作”类别,然后单击“变量”,之后双击setvariable。在“表达式”文本框中输入以下代码: _x=339;(12)要更新动态文本框,可在“动作”工具箱中单击“动作”类别,然后单击“变量”,之后将setvariable拖到脚本窗格的第9行。在“变量”文本框中输入_root.display,并在“值”文本框中输入Right。代码应该如下所示:speed=10;car.onEnterFrame=function(){with(car){ if(Key.isDown(Key.RIGHT)){ x+=speed; if(_x>=339){ _x=339; } root.display="Right"; }}};(13)要添加向左、向上和向下移动,可在“动作”工具箱中单击“动作”类别,然后单击“条件/循环”,之后将elseif拖到脚本窗格的第10行,接着重复步骤(8)~(11)。按照如下代码更改参数的详细信息:}elseif(Key.isDown(Key.LEFT)){_x-=speed;if(_x<60){_x=60;}_root.display="Left";}elseif(Key.isDown(Key.UP)){_y-=speed;}elseif(Key.isDown(Key.DOWN)){_y+=speed;if(_y>244){_y=244;}_root.display="Down";}要确保将代码放在正确的行上(第10行到第28行)。关闭外层if语句的括号和关闭事件处理函数的括号应该跟在第29行和第30行后面。(14)选择“控制”→“测试影片”来测试影片。10.4设置颜色值可以使用内置Color对象的方法来调节影片剪辑的颜色。setRGB方法会为该对象指定十六进制RGB(红、绿、蓝)值。下面的示例就使用setRGB根据用户输入来更改对象的颜色。设置影片剪辑的颜色值的具体步骤如下:(1)选择舞台上的一个影片剪辑。(2)在检查器属性中,输入carColor作为实例名称。(3)创建一个名为colorchip的按钮,接着在舞台上放置该按钮的四个实例,并将它们分别命名为red、green、blue和black。(4)在主时间轴上选择第1帧,然后选择“窗口”→“动作”。(5)要创建一个新的Color对象,可在“动作”工具箱中单击“对象”类别,然后单击“影片”和“Color”,之后双击newColor,之后为目标选择_root.carColor。在“表达式”文本框中输入myColor=。代码如下所示: myColor=newColor(_root.carColor);(6)要将一个事件与一个对象关联起来,可在“动作”工具箱中单击“对象”类别,然后单击“影片”、“MovieClip”和“事件”,之后双击onRelease。在“对象”文本框中输入按钮实例名称,可以是_root.red、_root.green、_root.blue或者是_root.black。(7)在“动作”工具箱中,单击“对象”类别,然后单击“影片”、“Color”、“方法”,之后双击setRGB。在“对象”文本框中输入Color对象名myColor。在“参数”文本框中输入用十六进制数表示的颜色,如表9.4所示。表9.4用十六进制数表示的颜色(8)对于这四种颜色重复步骤(6)到步骤(7),代码如下所示:myColor=newColor(_root.carColor)_root.blue.onRelease=function(){ myColor.setRGB(0x0000ff)};_root.red.onRelease=function(){ myColor.setRGB(0xff0000)};_root.green.onRelease=function(){ myColor.setRGB(0x00ff00)};_root.black.onRelease=function(){ myColor.setRGB(0x000000)};(9)选择“控制”→“测试影片”来测试影片剪辑的颜色。10.5创建声音控件可以使用内置Sound对象控制影片中的声音。要使用这种方法,必须先创建一个新的Sound对象。然后可以使用attachSound方法将库中的声音在影片运行时插入影片。要查看声音控件的动画演示,可单击“播放”按钮,然后调节音量和面板。Sound对象的setVolume方法控制着音量,而setPan方法则调节声音的左右平衡。
1.将声音附加到时间轴上(1)选择“文件”→“导入”来导入一种声音。(2)从库中选择声音,右键单击,然后在弹出菜单中选择“链接”。(3)选择“为动作脚本导出”和“在第一帧导出”,然后给它指定标识符a_thousand_ways。(4)在舞台上添加一个按钮,然后将它命名为playButton。(5)在舞台上添加一个按钮,然后将它命名为stopButton。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿竹种植协议书
- 猪粪消纳协议书
- 签下分手协议书
- 彩票站聘任店员协议书
- 逃离离婚协议书
- 罐车合伙协议书
- 纸上夫妻协议书
- 电梯工程协议书
- 化工煤买卖合同协议书
- 小语种课程转让协议书
- 2024年中国资源循环集团有限公司招聘笔试真题
- 2025-2030中国装备故障预测和健康管理(PHM)行业发展现状与前景预测分析研究报告
- 信息安全基础试题及答案
- 肛瘘护理查房
- T-PPAC 701-2021 企业商业秘密管理规范
- 经络腧穴学试题库与参考答案
- 2025年保健按摩师(高级)资格认证考试题库(附答案)
- 2024-2025人教七上数学26第3章代数式小结与复习【教案】
- 评估与反馈机制在教研中的重要性
- 供应商廉洁态发言材料
- 字节跳动经营分析报告
评论
0/150
提交评论