第二课:按钮处理事件和帧的控制
本课实例练习: 01)启动FLASH点击场景第1帧,然后给于此帧动作stop();让它停止在这帧上,再点窗口菜单--其它面板--场景,打开场景窗口,点右下+,添加场景 2,然后在上面点下场景 1,回到场景 1。 注:尽管我只有一帧,我还是用STOP的原因是,我打算多场景,正常情况下第一个场景放完了会自己跳放第二个场景,全放完了自动回头,因此虽然我此场景就1帧也要加停止播放的动作,不控制自己就会放到场景二上去了。 02)新建电影元件叫鸡,然后导入素材一(下面跟贴提供)。并将鸡元件最后1帧后面也就是13帧上插入空白关键帧,给此帧的动作语言:gotoAndPlay(1); 注:加不加此动作元件在自然播放时放完最后1帧都会自动跳到第1帧进行重复播放,那我为什么要给此动作呢?因为下一帧语句nextFrame()播放元件时间轴上到最后1帧时将无法通过下一帧来实现跳回头重播,所以我加了此句方便我后面慢动作的控制能够循环操作,不会因为播放到鸡元件最后一帧时而卡住不动了。 03)再新建一个电影元件叫鸡走路,把鸡元件拖入,实例名起为:bb,坐标为(0,0)。 注:此时的鸡元件在语言中可调用的实例名是bb,同时它的路径也和鸡走路这个元件建立了子父关系。 04)在鸡走路元件的45帧处插入关键帧,给于此帧gotoAndPlay(1)动作,原因同上。并将此帧上鸡元件坐标改为(-500,0),返回第1帧设成动画。 05)返回场景鸡走路元件拖入场景1时间轴上第1帧,实例名起为:aa,位置设为(440,60) 注:此时的鸡走路元件在语言中调用的实例名是aa,同时它的路径和场景时间轴_root建立了子父关系。 06)新建一个图形元件叫矩形,在里面绘制一个距形,大小为90*35,红框黄底。 07)新建按钮元件1,把矩形元件拖入,在上面输入12磅文字:停止BB元件播放使用鼠标按下效果,然后返回场景1,把按钮元件1拖到场景合适位置,点开动作面板,写上以下语句: on (press) { _root.aa.bb.stop(); } 注:典型的按钮语句,触发事件选用了鼠标按下动作就执行后面大括号内语句,大括号里我用的是绝对路径对BB元件上的时间轴做了stop()停止播放的动作,这样鸡本身就不动了,但aa元件没有停止,因此它的位置仍然在移动。如果换成相对路径来描述,中间一句可以改成:this.aa.bb.stop();这里可能会让大家不能理解为什么不是this._parent.aa.bb.stop();我解释下按钮元件特殊内部并无时间轴,因此写在按钮元件上语言本身位置等于按钮所在的时间轴位置,这里按钮1是在场景时间轴上,this的位置=根部_root。 08)新建按钮元件2,把矩形元件拖入,在上面输入文字:停止AA元件播放使用鼠标释放效果,然后返回场景1,把按钮元件2拖到场景合适位置,点开动作面板,写上以下语句: on (release) { _root.aa.stop(); } 注:这里的区别一是触发事件由press变成了release,也就是当鼠标在按钮上按下时并不会执行停止动作,大家可以试试看,只有当鼠标按下并松开后才会执手后面大括号内的动作。这里的松开就是所谓的释放鼠标左键。区别二是对元件aa控制,目标路径指向当然和上个有所不同。 09)新建按钮元件3,把矩形元件拖入,在上面输入文字:播放bb元件使用 鼠标有键按滑过,然后返回场景1,把按钮元件3拖到场景合适位置,点开动作面板,写上以下语句: on (dragOver) { _root.aa.bb.play(); } 注:什么叫有键按滑过,就是在按钮身上按下键不松开然后移动鼠标出按钮区域扔然不松开,再移入按钮区域才触发后面大括号内语句被执行。 10)新建按钮元件4,把矩形元件拖入,在上面输入文字:播放aa元件使用 鼠标有键按滑出,然后返回场景1,把按钮元件4拖到场景合适位置,点开动作面板,写上以下语句: on (dragOut) { _root.aa.play(); } 注:什么叫有键按滑出,就是在按钮身上按下键不松开然后移动鼠标滑出按钮区域就触发后面大括号内语句被执行。 11)新建按钮元件5,把矩形元件拖入,在上面输入文字:单击变慢动作 鼠标按下执行,然后返回场景1,把按钮元件5拖到场景合适位置,点开动作面板,写上以下语句: on (press) { _root.aa.bb.nextFrame(); _root.aa.nextFrame(); } 注:nextFrame();是播放下一帧并停止在下一帧,这样的话,我击一次鼠标,AA和BB元件都只播放一帧内容,不停的击就看到像慢动作一样的效查。 12)新建按钮元件6,把矩形元件拖入,在上面输入文字:进入场景二 单击释放执行,然后返回场景1,把按钮元件6拖到场景合适位置,点开动作面板,写上以下语句: on (release) { gotoAndStop("场景 2",1); } 注:gotoAndStop是跳转的命令,意思是到达并停止在某场景中某帧,如果场景省略不写就默认自己所在的本地场景。另场景名和实例名不一样,中间允许有空格。由于这个动作含了停止动作,那么放到场景二第1帧上就会停下来,我们就可以省了在场景二的第1帧上加STOP停止动作了。如果用gotoAndPlay动作的话,将是跳到场景二并播放其时间轴上所有的帧,放完后会自动跳到下一场景,如果没有就返回第一场景。 13)点击场景设置窗口中的场景 2,进入场景二编辑区。新建电影元件叫乐队,在其中导入素材二(下面跟贴提供)。 14)再新建一个电影元件叫旋转乐队,把乐队元件拖入其中,实例名设为dd,然后做一个椭圆绕圈引导动画。 15)返回场景2,把旋转乐队元件拖入场景2时间轴上第1帧,位置中上部,实例名设为cc。 16)新建按钮元件7,把矩形元件拖入,在上面输入文字:按下停松开动移出跑移入停,然后返回场景2,把按钮元件7拖到场景合适位置,点开动作面板,写上以下语句: on (press) { _root.cc.dd.stop(); } on (release) { _root.cc.dd.play(); } on (rollOver) { _root.cc.stop(); } on (rollOut) { _root.cc.play(); } 注:这组意思我就不再反复讲了,不明白查看主贴资料,这只提醒大家,把鼠标移入此按钮,按下左键不松,一会再松开,最后再移出,检验效果是否都是如语言所述。 17)新建按钮元件8,把矩形元件拖入,在上面输入文字:返回场景一单击释放执行,然后返回场景2,把按钮元件8拖到场景合适位置,点开动作面板,写上以下语句: on (release) { gotoAndPlay("场景 1",1); } 注:由于场景1第1帧上有STOP停止动作,因此这里我用的是gotoAndPlay,跳到场景1第1帧并播放,当播放第一帧时马上读到帧上语句STOP,就会停下来,不必担心又放到场景2上去! 全部完毕,测试影片:全屏播放 |
|