1 / 57

Flash 动画设计

Flash 动画设计. 主讲人:阚宝朋. 第六章 Flash cs3 的脚本动画. 学习目标 :. 掌握脚本动画创建的基本方法 。 学会制作交互动画 。. 学习任务 :. 九九乘法表 —— Flash CS3 编程基础. 剪刀石头布 —— Flash cs3 制作简单游戏. 任务一 九九乘法表─ Flash CS3 编程基础. 想想如何用 Flash cs3 制作熟悉的九九乘法表。. 输出面板 :输出语句 trace

arch
Download Presentation

Flash 动画设计

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. Flash动画设计 主讲人:阚宝朋

  2. 第六章 Flash cs3的脚本动画 学习目标: • 掌握脚本动画创建的基本方法。 • 学会制作交互动画。 学习任务: 九九乘法表——Flash CS3编程基础 剪刀石头布——Flash cs3制作简单游戏

  3. 任务一 九九乘法表─Flash CS3编程基础 想想如何用Flash cs3制作熟悉的九九乘法表。

  4. 输出面板:输出语句 trace 基本AS命令:stop,play,gotoAndStop,gotoAndPlay,prevFrame,nextFrame。 复习

  5. 大小写敏感 为了避免由于在大小写上的疏忽造成的程序错误,最好的办法就是牢记各个命令的写法。当然动作面板具有彩色显示代码的功能:flash内置的命令、属性和事件等关键字用蓝色显示;其他字符以黑色显示;注释以灰色显示。 在as中,一个命令可能是一个英文单词,也可能是多个英文单词的组合。它们的共同特征在于,第一个单词的首字母是小写的,后面每个单词的首字母是大写的。 注意输入法中英文状态 语法格式要求

  6. 变量:命名规则第一个字符必须是字母、下划线或者$符号。其后必须是字母、数字、下划线或美元记号。变量:命名规则第一个字符必须是字母、下划线或者$符号。其后必须是字母、数字、下划线或美元记号。 局部变量、时间轴变量、全局变量 局部变量:只在声明变量的代码块有用 var myVar; var a,b,c; 时间轴变量:在声明变量的整个时间轴有效 不用var,直接声明 全局变量:整个影片内都有效 _global.money = 10000; 强制变量类型:var myVar:String = “Hello world”; function varTest(){ var x=1; } varTest(); Trace(x); AS 单位

  7. 函数 注释 var time = new Date(); var hh=time.getHours(); var mm= time.getMonth(); var dd = time.getDate(); var ss = time.getSeconds(); var MM = time.getMinutes(); trace(mm+":"+dd+" "+hh+":"+MM+":"+ss);

  8. 字符串 数字var a:String = “12”; var b:Number =34; var c=a+b; trace(c); 布尔型 Object rd=Math.round(5.5); MovieClip Null Undifined 确定变量的数据类型 typeof 强制数据类型转换 var a = “12”;var b=Number(a); 数据类型

  9. 点运算符 “.”是面向对象编程得意中显著特征,它用来连接对象与嵌套在对象中的子对象,以及访问对象与对象的属性和方法,用这种方法体现出来的对象的层级和位置关系称为对象的路径。使用点语法表示的路径可以方便地访问flash中任一层次上的对象以及该对象的属性和方法。点运算符 “.”是面向对象编程得意中显著特征,它用来连接对象与嵌套在对象中的子对象,以及访问对象与对象的属性和方法,用这种方法体现出来的对象的层级和位置关系称为对象的路径。使用点语法表示的路径可以方便地访问flash中任一层次上的对象以及该对象的属性和方法。 使用点运算符来表示路径非常方便,可以使对象之间和层次和包含关系一目了然。举例:教室.课桌.铅笔盒.钢笔 绝对路径:从_root开始 相对路径:this,parent 点运算符也用来连接对象与对象的方法和属性。举例:定义一个影片剪辑,影片剪辑的横坐标(属性)就可以用mc._x表示;影片剪辑的拖动(方法)就可以用mc.startDrag(true)表示。 country province city street 运算符

  10. 数值运算符 比较运算符 字符串运算符 逻辑运算符 按位运算符 赋值运算符 数组访问运算符 运算符的优先级 其它运算符

  11. 核心类:Object String Number Date Color等 主用类:MovieClip Mouse Sound等 程序结构 循环结构 分支结构 条件结构等 with语句: with(mc){ nextFrame(); _x=100; _y=100; _rotation = 90 } 面向对象的编程 mc.nextFrame(); mc._x = 100 ; mc._y = 100; mc._rotation = 90;

  12. 任务一 九九乘法表─Flash CS3编程基础 操作步骤提示 1.布置舞台,输入标题“九九乘法表”和动态文本。 动态文本框

  13. 任务一 九九乘法表─Flash CS3编程基础 操作步骤提示 2.标题文字和动态文本框,设置文字投影效果, 3.给第1帧加如下脚本语句。 var s:String = "";//定义全局变量s for (var i=1; i<=9; i++) { for (var j=1; j<=i; j++) { var k = i*j; s=s+i+"×"+j+"="+k+(k<10 ? " " : " ")+(j==i ? "\n" : ""); //显示i*j=k 并自动换行 } } 4.制作完毕。

  14. 任务一 九九乘法表─Flash CS3编程基础 Flash CS3编程基础 • Action Script相关术语 (1)常量与变量 在使用脚本语言中需要用到一些保持不变的数值,称为“常量”。常量有数据值、字符串型和逻辑型三种,具体含义如下: • 数值型:由具体数值表示的定量参数,如4,6.73,PI等。 • 字符串型:由若干字符组成,用半角的双引号括起来,如”chongqing”,”早上好!”。 • 逻辑型:表示逻辑判断的结果,只的两个值。如果判断成立,用“true”表示,不成立用“false”表示。 与常量相对的变量就是其值可以改变的量。变量可以存储各种类型的数据。使用赋值符号“=”给变量赋值,如s=3456;表示给s赋值为3456。 注意:在Flash影片中主时间轴和影片时间轴都有各自的变量,互不影响。

  15. 任务一 九九乘法表─Flash CS3编程基础 Flash CS3编程基础 (2)表达式 所谓表达式,就是用运算符号将常量、变量、函数等连接起来的式子。 (3)类 “类”是一系列关联对象的集合。如所有的人组成“人类”,所有的动物组成“动物类”等。类可以扩展,如动物中所有的羊组成“羊类”,即“羊类”是“动物类”的一个扩展,扩展出来的类默认情况下会复制原来类的所有属性。如下面语句定义了类。 Class Sheep{ //定义一个“羊类” Var name; //羊的名称; Var age; //羊的年龄; Function Run(){ } //羊跑的动物 } (4)事件 “事件”是触发对象动作的动作。它是一个对象发出的特定动作,目标是触发另一个对象的动作,如鼠标的移动、按扭的按下等都是事件。

  16. 任务一 九九乘法表─Flash CS3编程基础 Flash CS3编程基础 2.Action Script基本语法 所有的语言都有自己的语法规则与标点符号,Flash cs3中的脚本语言也一样。下面是一些常用的符号。 (1)花括号。 作用是分隔代码,形成不同的运行空间,相当于中文里的分段,注意花括号必须成对出现,即有一个“{”就必须有一个“}”与之对应,否则会出现语法错误。 (2)点号。作用是指明对象相关的属性和方法,简单的说可以理解为“的”。例如“王五.姓名”表示“王五的姓名”,如下面的应用 Ts._x=120;ts._y=200; 表示设置ts对象的横坐标是120,纵坐标是200。 (3)小括号。改变动算顺序可函数的相关参数,与数学中的括号含义一致。 (4)双斜杠。表示注释,在程序中不会执行,是写给设计者看的,便于阅读程序。

  17. 任务二 京剧脸谱─Flash cs3制作简单游戏 玩玩下面的简单游戏,想想如何制作此游戏。

  18. 举例全局变量 局部变量 时间轴变量的作用域 全局变量:影片 与 影片剪辑举例 复习

  19. 主要内容:事件处理机制 按钮事件 按钮事件处理函数

  20. 在flash中,产生事件的对象主要是按钮和影片剪辑,当这些对象有事件发生时,可以被我们捕捉到。捕捉事件只是一个开始,对事件做出响应才是我们要的结果。对事件做出响应的过程就是事件处理,在as中,可以使用on结构捕捉和处理按钮事件;使用onClipEvent结构捕捉和处理影片剪辑事件。在flash中,产生事件的对象主要是按钮和影片剪辑,当这些对象有事件发生时,可以被我们捕捉到。捕捉事件只是一个开始,对事件做出响应才是我们要的结果。对事件做出响应的过程就是事件处理,在as中,可以使用on结构捕捉和处理按钮事件;使用onClipEvent结构捕捉和处理影片剪辑事件。

  21. 例如:按钮被鼠标按下的事件在as中用press表示,如果要对这一事件例如:按钮被鼠标按下的事件在as中用press表示,如果要对这一事件 作出响应,就可以直接将处理事件的代码添加在按钮的动作面板上; on(press){ trace(“button pressed!”); } 关键字on用来捕捉按钮事件,在按钮的动作面板中,只能使用以on开 头的事件处理代码。 press事件专门用来表示按钮被鼠标按下的动作。 代码on(press)使得按钮被按下的事件能够被捕捉到,然后调用大括号 里的代码,输出“button pressed”; 按钮on结构

  22. Press:按钮上单击鼠标左键 Release:按钮上释放鼠标左键 Roll out:鼠标指针移出按钮。 Roll over:鼠标指针移到按钮上面。 Release outside:鼠标指针在按钮上时按下左键,然后移出按钮外后才释放。 Drag out:鼠标指针在按钮上时按下左键,然后拖出按钮外。 Drag over:鼠标指针在按钮上时按下左键,然后拖出按钮外后又拖回按钮上。 KeyPress:按下指定的键盘键 keyPress是键盘作用于按钮的事件,表示某个特定键被按下。在keyPress事件后,有一个用引号和尖括号括起来的字符串,用来代表被按下的键。 举例:1.输出各种状态。2.控制影片剪辑移动。 按钮事件

  23. 在一个按钮的动作面板中,可以同时使用多个on结构,此外,还可以在一个on结构中响应多个事件,每个事件之间以逗号隔开。在一个按钮的动作面板中,可以同时使用多个on结构,此外,还可以在一个on结构中响应多个事件,每个事件之间以逗号隔开。 on(press){ boy._xscale=boy._yscale=200; } on(release,releaseOutside){ boy._xscale=boy._ysacle=100; } 第二个on结构将两种不同的事件合并在一起,它们中的任何一个事件发 生时,都将执行同样的代码。

  24. 除了使用按钮的on结构可以捕捉和处理按钮的事件这样方法外,另一种方法是在时间轴的关键帧上使用事件处理函数来捕捉和处理按钮事件。除了使用按钮的on结构可以捕捉和处理按钮的事件这样方法外,另一种方法是在时间轴的关键帧上使用事件处理函数来捕捉和处理按钮事件。 将按钮命名,然后选中要添加as的关键帧,打开动作面板。 btn.onPress=function(){ trace (“button pressed!”); } onpress是button类内置的事件处理函数,该函数在按钮的press事件发生时被调用执行。但是该函数本身并不执行任何操作,因此需要为其指定一个处理press事件的函数。 按钮事件处理函数

  25. mouseDown和mouseUp事件由鼠标产生,keyDown和keyUp事件由键盘产生。当键盘事件发生时,所按键的代码将作为参数被一同发送,通过键控代码来区别键盘上不同的键。使用Key类的getCode方法可以提取键控代码。 mouseDown和mouseUp事件由鼠标产生,keyDown和keyUp事件由键盘产生。当键盘事件发生时,所按键的代码将作为参数被一同发送,通过键控代码来区别键盘上不同的键。使用Key类的getCode方法可以提取键控代码。 • 键控代码是一个整数,在表示键盘的Key类中,某些常数用来代表特殊的键。例如左方向键的键控代码值是37,Key类的常数LEFT用来代表左方向键,Key.LEFT的值就是37。 onClipEvent(KeyDown){ if(Key.getcode()==Key.LEFT){ trace (“LEFT KEY Pressed”); } } on(keyPress”<left>”){ trace(“LEFT KEY Pressed”); }

  26. 知识要点或快捷键1._alpha:设置影片剪辑的alpha透明度(用0-100表示)。如:aa_mc._alpha=602._height和_width:设置影片剪辑的高度和宽度。如:aa_mc._height=1203._name:设置影片剪辑的实例名称。4._rotation:设置影片剪辑的旋转角度。如:aa_mc._rotation=455._visible:设置影片剪辑的可视性(可见用true或不可见false)。6._xmouse和_ymouse:设置鼠标的X,Y的坐标位置。7._xscale和_yscale:设置影片剪辑的X,Y的缩放比例。8._x和_y:设置影片剪辑X,Y坐标位置。9._framesloaded:设置影片剪辑的帧的加载数目。常用于制作下载进度类型的动画。10._quality:设置影片剪辑的播放质量。(LOW最底质量、MEDIUM中等质量、HIGH高质量、BEST最高质量)知识要点或快捷键1._alpha:设置影片剪辑的alpha透明度(用0-100表示)。如:aa_mc._alpha=602._height和_width:设置影片剪辑的高度和宽度。如:aa_mc._height=1203._name:设置影片剪辑的实例名称。4._rotation:设置影片剪辑的旋转角度。如:aa_mc._rotation=455._visible:设置影片剪辑的可视性(可见用true或不可见false)。6._xmouse和_ymouse:设置鼠标的X,Y的坐标位置。7._xscale和_yscale:设置影片剪辑的X,Y的缩放比例。8._x和_y:设置影片剪辑X,Y坐标位置。9._framesloaded:设置影片剪辑的帧的加载数目。常用于制作下载进度类型的动画。10._quality:设置影片剪辑的播放质量。(LOW最底质量、MEDIUM中等质量、HIGH高质量、BEST最高质量) 影片剪辑的属性介绍

  27. 与处理按钮事件的on结构类似,在影片剪辑的动作面板中,采用与处理按钮事件的on结构类似,在影片剪辑的动作面板中,采用 onClipEvent结构代码来捕捉影片剪辑的事件。 onClipEvent(enterFrame){ trace(); } onClipEvent结构只能用在影片剪辑的动作面板中,在时间轴的关键帧 中,影片剪辑事件处理函数具有如下形式: mc.onEnterFrame=function(){ trace(); } 影片剪辑还能使用处理按钮事件的on结构,这时影片剪辑能够响应按钮 事件,从而被当作按钮使用,但是影片剪辑的onClipEvent结构不能用 于按钮。 影片剪辑处理事件

  28. 影片剪辑的事件除了可由鼠标和键盘引起外,还可以由其自身的加载和播放行为引起。影片剪辑的事件除了可由鼠标和键盘引起外,还可以由其自身的加载和播放行为引起。 load:影片剪辑被加载并显示在时间轴中。 unload:影片剪辑被删除并从时间轴中消失。 enterFrame:播放头进入到影片剪辑实例所在的帧。 mouseMove:移动鼠标 mouseDown:按下鼠标左键 mouseUp:释放鼠标左键 keyDown:按下键盘上的键 keyUp:释放键盘上的键 data:用过loadMovie或loadVariable方法接受外部数据时引起。 影片剪辑的事件

  29. 用load和enterFrame事件制作脸谱 举例

  30. onLoad, onUnload, onEnterFrame, onMouseMove, onMouseUp, onKeyDown, onKeyUp, onData这些事件处理函数对应着可被影片剪辑的onClipEvent结构捕捉的事件,它们是影片剪辑区别于按钮的事件处理函数,是影片剪辑所特有的。 onPress, onRelease, onReleaseOutside, onRollOver, onRollOut, onDragOut, onDragOver, onSetFocus, onKillFocus对应着可被on结构捕捉的事件,它们是影片剪辑和按钮都具有的事件处理函数,在这些事件处理函数中,影片剪辑被当作按钮使用。 由于影片剪辑的事件必须在动作面板中以onClipEvent或on结构出现,而MovieClip类的事件处理函数可以出现在任何使用AS的地方,所以它具有更大的灵活性,使用非常广泛。 举例:图片悬停(onEnterFrame,onRollOver,onRollOut) 关键字delete,能够删除对象的事件处理函数,这对我们要停止某一事件以阻止循环编程无限循环时非常有用。 影片剪辑的事件处理函数

  31. 侦听器和广播器 键盘 鼠标 任务三 舞者

  32. 按钮事件 影片剪辑事件 影片剪辑属性含义 复习 • 1._alpha:如:aa_mc._alpha=602._height和_width:如:aa_mc._height=1203._name:4._rotation:如:aa_mc._rotation=455._visible:(true或false)。6._xmouse和_ymouse:7._xscale和_yscale:8._x和_y:9._framesloaded:10._quality: (LOW、MEDIUM、HIGH、BEST)

  33. 主时间轴对象_root具有与影片剪辑类似的事件机制,如onEnterFrame、onLoad主时间轴对象_root具有与影片剪辑类似的事件机制,如onEnterFrame、onLoad 练习 复习

  34. 侦听器和广播器 • 影片剪辑实例可以通过事件处理函数onMouseMove, onMouseDown, onMouseUp来响应鼠标动作,但是不能通过onKeyDown, onKeyUp来相应键盘动作,这是因为,影片剪辑实例不在Key类的侦听器列表中。 • 侦听器:事件侦听器,它让一个对象接受其他对象生成的事件。生成事件的称为广播器对象,接受事件的称为侦听器对象。 例如:在影片剪辑的onKeyDown事件处理函数中,按键事件是由键盘生成,因此键盘就是广播器对象;按键事件是由影片剪辑接收,因此影片剪辑就是侦听器对象。广播器对象上发生的动作被侦听器接收,从而触发绑定到侦听器对象上的事件处理函数onKeyDown,函数执行,完成对事件的响应。 • 由于影片剪辑对象不是键盘对象默认的侦听器,要使它能接收和处理键盘事件,就必须将其注册成键盘对象的侦听器。

  35. 将影片剪辑注册为键盘对象的侦听器,需要使用Key类的addListener方法。将影片剪辑注册为键盘对象的侦听器,需要使用Key类的addListener方法。 myMc.onKeyDown=function(){ trace(Key.getCode); }; Key.addListener(myMc); 这样myMc就成为了Key类的 侦听器,可以接收和处理键盘 上的KeyDown事件 • 用addListener方法注册的侦听器可以用removeListener方法删除。 • Key对象不但可以将像影片剪辑这样的对象注册为侦听器,还可以将其他对象注册为侦听器。如_root对象,自定义的对象等。 _root.onKeyDown=function(){ trace(Key.getCode()); if(Key.getCode()==Key.ESCAPE){ Key.removeListener(_root); } }; Key.addListener(_root);

  36. 代表键盘的Key类是一个顶级类,它的方法和属性都是静态的,可以直接通过类调用,而不需创建类的实例。键盘是按钮和影片剪辑事件的主要来源之一,它们主要通过onKeyDown和onKeyUp这两个侦听器来侦听键盘事件。在键盘事件发生时,所按键的代码被捕捉到,并可通Key类的getCode或getAscII方法来判断具体按下的是哪个键。代表键盘的Key类是一个顶级类,它的方法和属性都是静态的,可以直接通过类调用,而不需创建类的实例。键盘是按钮和影片剪辑事件的主要来源之一,它们主要通过onKeyDown和onKeyUp这两个侦听器来侦听键盘事件。在键盘事件发生时,所按键的代码被捕捉到,并可通Key类的getCode或getAscII方法来判断具体按下的是哪个键。 键控代码——如果我们的目的只是要区别按下的是键盘中的哪个键,而不区别按下具体输入什么字符,我们就需要用到键控代码,它考虑的的是按键在键盘中的位置,不考虑按一个键是否输入字符,或是否能代表不同字符,键控代码使得每一个按键位与一个具体的数字对应。 ASCII码——它是针对字符进行的编码,而不是针对键位。 键盘

  37. 键控代码:主键盘和小键盘上的数字,虽然都是同一个数字,但是却拥有不同的键控代码。键控代码:主键盘和小键盘上的数字,虽然都是同一个数字,但是却拥有不同的键控代码。 • ASCII码:键控代码为49的数字键1可以输入1和!两个字符,它们的ASCII码分别是49和33。 由于ASCII码与字符是一一对应的,因此将ASCII码转换成字符是完全可行的。

  38. 键控代码的Key类的两种方法: • Key.getCode() • Key.isDown() • 与在onKeyDown和onKeyUp事件处理函数中通过getCode方法获取按键的键控代码值不同,isDown方法可以在任何事件处理函数中使用,它的作用就是判断一个具体的键是否被按下。 返回一个布尔值 Key.isDown(keycode) • isDown和getCode方法另一个不同之处在于,getCode方法只能获取最近一次按键的键控代码,因此它只能用来对一个按键进行判断;而isDown方法不受键盘事件的限制,可以同时对多个键的状态进行检测,因此可以用来定义复合键。 实例:舞者

  39. 代表鼠标的类是Mouse,和Key类一样,Mouse类也是一个顶级类,它的方法也是静态的,可以直接通过类名调用。Mouse类没有属性成员。鼠标也是按钮和影片剪辑事件的主要来源之一,按钮和影片剪辑通过onMouseMove侦听器来侦听鼠标的引动;通过onMouseDown和onMouseUp来侦听鼠标左键的单击;通过onMouseWheel侦听鼠标中键的滚动,此外,还可以通过设置右键菜单来响应鼠标右键的动作。代表鼠标的类是Mouse,和Key类一样,Mouse类也是一个顶级类,它的方法也是静态的,可以直接通过类名调用。Mouse类没有属性成员。鼠标也是按钮和影片剪辑事件的主要来源之一,按钮和影片剪辑通过onMouseMove侦听器来侦听鼠标的引动;通过onMouseDown和onMouseUp来侦听鼠标左键的单击;通过onMouseWheel侦听鼠标中键的滚动,此外,还可以通过设置右键菜单来响应鼠标右键的动作。 替换鼠标指针——将系统默认的鼠标指针隐藏掉,而用另外的图形来显示鼠标的动作。 鼠标 Mouse类的hide方法可以隐藏系统的鼠标指针,show方法可以让隐藏的 鼠标指针重新显示。隐藏鼠标指针只是完成替换鼠标指针的一半工作,另 一半工作需要用鼠标跟随。实现鼠标跟随的途径很多,都是将图形元件的 坐标位置与鼠标指针的坐标位置保持一致。

  40. AS2.0提供了鼠标中键(滚轮)的事件响应。侦听中键动作的事件处理函数是onMouseWheel。要使用onMouseWheel事件处理函数,需要首先创建侦听器的对象AS2.0提供了鼠标中键(滚轮)的事件响应。侦听中键动作的事件处理函数是onMouseWheel。要使用onMouseWheel事件处理函数,需要首先创建侦听器的对象 鼠标中键 mouseListener=new Object(); mosueListener.onMouseWheel=function(delta){ mc._x+=delta; }; Mouse.addListener(_root); • 在事件处理函数中使用的参数delta代表鼠标滚轮一格所滚动的行数,它的值是由系统决定的,可以在“控制面板”的“鼠标”项中设置。当中键向前滚动时,参数delta为正;当中键向后滚动时,参数delta为负。可以利用中键进行滚屏的操作。

  41. 默认情况下,在flashplayer的播放窗口中单击鼠标右键,会显示一个快捷菜单,该菜单称为flashplayer的内置菜单,它主要提供放大、缩小、调整画面品质和系统设置等功能。AS2.0允许用户定义自己的右键菜单,使我们可以充分开发鼠标右键的功能。默认情况下,在flashplayer的播放窗口中单击鼠标右键,会显示一个快捷菜单,该菜单称为flashplayer的内置菜单,它主要提供放大、缩小、调整画面品质和系统设置等功能。AS2.0允许用户定义自己的右键菜单,使我们可以充分开发鼠标右键的功能。 ContextMenu类提供了对右键菜单的管理。要自定义右键菜单,就需要创建ContextMenu类的一个实例。ContextMenu类的实例可以附加到特定的对象。ContextMenu类的customItems数组用来管理右键菜单项,每个右键菜单项是ContextMenuItem类的一个实例,可以通过数组ContextMenu.customItems的push方法将ContextMenuItem添加到ContextMenu中,从而为右键菜单添加具体的菜单命令。 鼠标右键 myMenu=new ContextMenu(); myMenu.customItems.push(new ContextMenuItem(“name”,funciton));

  42. var myMenu = new ContextMenu();//创建实例 myMenu.hideBuiltInItems();//隐藏内置的右键菜单 myMenu.customItems.push(new ContextMenuItem("rotation", funRotate)); myMenu.customItems.push(new ContextMenuItem("exit", funExit)); //创建菜单项实例,并将其加载到菜单数组上 function funRotate(obj, menu) {//自定义函数 obj.play(); obj.onEnterFrame = function() { this._rotation += 10; }; } function funExit(obj, menu) { obj.stop(); delete obj.onEnterFrame; } myMc.menu = myMenu;//右键菜单与对象关联起来

  43. 为右键菜单项定义的函数具有两个参数: • 一个是object类型,代表与所选右键菜单相关联的对象,即鼠标右键在其上单击以弹出右键菜单的对象; • 一个是ContextMenu类型,代表弹出的右键菜单 function funcExit(obj, menu) { }; 案例:ContextMenu 自定义右键菜单

  44. 主要内容:事件处理机制 操作步骤提示 1.导入手形图片到库中,并将此图片转换成相应的影片剪辑元件。 2.制作布、剪刀、石头按扭元件。

  45. 任务二 剪刀石头布─Flash cs3制作简单游戏 操作步骤提示 2.制作左右手出出拳影片元件:leftp和rightp

  46. 任务二 剪刀石头布─Flash cs3制作简单游戏 操作步骤提示 3.按下图布置场景。 动态文本框:userdf 动态文本框:computerdf Leftp影片 rightp影片

  47. 任务二 剪刀石头布─Flash cs3制作简单游戏 操作步骤提示 3.在第1帧选择“石头”按扭元件并加入如下代码。 on(press)//当点击鼠标时执行,代表用户出拳为石头 { leftp.gotoAndPlay(1);//用户手势从第一帧播放 //产生一个随机数存放于全局变量i中,并使电脑手势从相应的帧数开始播放 cc(); switch (i)//依据产生的随机数执行相应的操作 { case 1://如果电脑出拳为石头 computerdf+=1; userdf+=1; break; case 16://如果电脑出拳为剪刀 computerdf-=2; userdf+=2; break; case 31://如果电脑出拳为布 computerdf+=2; userdf-=2; } }

  48. 任务二 剪刀石头布─Flash cs3制作简单游戏 操作步骤提示 4.在第1帧选择“剪刀”按扭元件并加入如下代码。 on(press) //当点击鼠标时执行,代表用户出拳为剪刀 { leftp.gotoAndPlay(16); cc(); switch (i) { case 1: //如果电脑出拳为石头 computerdf+=2; userdf-=2; break; case 16: //如果电脑出拳为剪刀 computerdf+=1; userdf+=1; break; case 31: //如果电脑出拳为布 computerdf-=2; userdf+=2; } }

  49. 任务二 剪刀石头布─Flash cs3制作简单游戏 操作步骤提示 5.在第1帧选择“布”按扭元件并加入如下代码。 on(press) //当点击鼠标时执行 代表用户出拳为布 { leftp.gotoAndPlay(31); cc(); switch (i) { case 1: //如果电脑出拳为石头 computerdf-=2; userdf+=2; break; case 16: //如果电脑出拳为剪刀 computerdf+=2; userdf-=2; break; case 31: //如果电脑出拳为布 computerdf+=1; userdf+=1; } }

  50. 任务二 剪刀石头布─Flash cs3制作简单游戏 操作步骤提示 5.给场景第1帧加入如下代码。 leftp.gotoAndStop(1);//使用户手势在第一帧停止 rightc.gotoAndStop(1); //使电脑手势在第一帧停止 var userdf =0,computerdf=0;//定义及初始化用户得分变量及电脑得分变量 var i;//定义全局变量 i //产生一个随机数存放于全局变量 i 中,并使电脑手势从相应的帧数开始播放 function cc() { i=random(3)*15+1; rightc.gotoAndPlay(i);} 6.制作完毕,玩玩游戏吧。

More Related