|
Behavior(行为)和行为面板在Dreamweaver中早已有了,但在Flash中则是首次引入。在Flash MX Professional 2004中,行为就是预先写好的动作脚本。
使用行为,你无需自己动手编写,就可以给你的Flash文档添加功能强大的动作脚本代码,给Flash内容(如文本、电影剪辑、图像、声音等)添加交互性,实施对文档中的电影剪辑和图像实例的控制。
你也可以使用行为来排列帧中电影剪辑和图像实例的堆叠顺序,装载和卸载实例,播放、停播、复制或拖曳实例,或创建链接。此外,你还可以使用行为装载外部图像或动画遮罩到电影剪辑中。
使用Behaviors(行为)面板可以很方便地应用行为。下面我们从用行为控制实例、视频和声音三个方面,体验一下Flash MX Professional 2004和Flash MX 2004中新增的行为功能。
这里用表格列出Flash MX 2004和Flash MX Professional 2004中用于控制实例的行为与控制视频回放的行为,供读者参考。
表1:用于控制实例的行为
| 行为 |
用途 |
参数 |
| Load Graphic(装载图像) |
装载外部JPEG图像到电影剪辑或屏幕中。 |
路径和JPEG文件名。电影剪辑或接收图像的屏幕的实例名。 |
| Load External Movie Clip(装载外部电影剪辑) |
装载外部SWF文件到目标电影剪辑或屏幕中。 |
外部SWF文件的URL。电影剪辑或接收SWF文件的屏幕的实例名。 |
| Unload Flash Movie(卸载Flash动画) |
删除用Load Movie行为或动作载入的SWF文件。 |
要卸载的电影剪辑或屏幕的实例名。 |
| Duplicate Movieclip(复制电影剪辑) |
复制电影剪辑或屏幕。 |
要复制的电影剪辑实例名。相对于要复制的原电影剪辑的X和Y偏移量(以像素为单位)。 |
| GotoAndPlay at frame or label(跳转某帧或帧标签播放) |
从特定帧播放电影剪辑。 |
要播放的目标电影剪辑实例名。要播放的帧编号或帧标签。 |
| GotoAndStop at frame or label(跳转某帧或帧标签停止播放) |
跳转特定帧并停止播放。 |
要停播的目标电影剪辑实例名。要停播的帧编号或帧标签。 |
| Bring to Front(移到前面) |
移动目标电影剪辑或屏幕到堆叠顺序的顶部。 |
电影剪辑或屏幕的实例名。 |
| Bring Forward(前移) |
在堆叠顺序中前移目标电影剪辑或屏幕一个位置。 |
电影剪辑或屏幕的实例名。 |
| Send to Back(移到后面) |
移动目标电影剪辑或屏幕到堆叠顺序的底部。 |
电影剪辑或屏幕的实例名。 |
| Send Backward(后移) |
在堆叠顺序中后移目标电影剪辑或屏幕一个位置。 |
电影剪辑或屏幕的实例名。 |
| Start Dragging movieclip(允许拖曳电影剪辑) |
允许拖曳电影剪辑。 |
电影剪辑或屏幕的实例名。 |
| Stop Dragging movieclip(停止拖曳电影剪辑) |
停止当前的拖曳。 |
|
表2:用于控制控制视频回放的行为
| 行为 |
用途 |
参数 |
| Play Video(播放视频) |
播放当前文档中的视频。 |
目标视频的实例名。 |
| Stop Video(停播视频) |
停止播放视频。 |
目标视频的实例名。 |
| Pause Video(暂停播放视频) |
暂停播放视频。 |
目标视频的实例名。 |
| Rewind Video(快倒) |
按指定的帧数快倒。 |
目标视频的实例名,帧编号。 |
| Fast Forward Video(快进) |
按指定的帧数快进。 |
目标视频的实例名,帧编号。 |
| Hide Video(隐藏视频) |
隐藏视频。 |
目标视频的实例名。 |
| Show Video(显示视频) |
显示视频。 |
目标视频的实例名。 |

我们用这个复制圆的例子说明用行为控制实例(如图像、电影剪辑、按钮等)的一般操作步骤。
1.在编辑区中放置一个圆的电影剪辑和一个按钮,然后在属性检查器中把圆电影剪辑命名为a1。
2.在编辑区中选择触发行为的对象(如编辑区中的按钮)。
3.选择Window>Development Panels>Behaviors(窗口>开发面板>行为),打开Behaviors(行为)面板。
4.在Behaviors面板中,单击加号(+)按钮,从Movieclip(电影剪辑)子菜单中选择想要的行为。本例选Duplicate Movieclip(复制电影剪辑)。

5.在弹出的对话框中,选择你想用行为控制的电影剪辑(这里选a1)。
6.选择Relative(相对)或Absolute(绝对)路径(一般情况下采用默认值Relative)。
7.如果需要,输入行为参数(本例设置复件在x轴的偏移量为10像素,y轴的偏移量为0像素),单击OK按钮。

8.该行为的默认事件On Release(释放鼠标按键)和动作Duplicate Movieclip(复制电影剪辑)出现在Behaviors面板中。

9.如果要改变鼠标事件,在Event(事件)下面,单击On Release(默认事件),从弹出的菜单中选择一种鼠标事件。本例采用默认的On Release事件,保持此选项不变。

10.选择Control>Test Movie(控制>测试动画),单击画面中的按钮,即可测试复制电影剪辑行为的效果。

提示:如果你注意观察,可以在动作面板中看到Flash MX已经自动给按钮添加了下面的代码:
on (release) {
//Duplicate Movieclip Behavior //Requires Flash Player 7 or later var newdepth = his.a1._parent.getNextHighestDepth(); var newname = "copy" + newdepth; var prevname = "copy" + (newdepth-1); if (this.a1._parent[prevname] == undefined) this.a1._parent[prevname] = his.a1; this.a1.duplicateMovieClip(newname,newdepth); this.a1._parent[newname]._x = this.a1._parent[prevname]._x + 10; this.a1._parent[newname]._y = this.a1._parent[prevname]._y + 0; //End Behavior
} |
在这里可以下载本例的源文件。
如果要删除添加的行为,可以在Behaviors面板中选中要删除的行为,然后单击该面板上面的减号(-)按钮。如果要编辑已经添加的行为,可以在Behaviors面板中的Action(动作)下面,双击要编辑的行为。
这里用表格列出Flash MX 2004和Flash MX Professional 2004中用于控制实例的行为,供读者参考。
| 行为 |
用途 |
参数 |
| Load Graphic(装载图像) |
装载外部JPEG图像到电影剪辑或屏幕中。 |
路径和JPEG文件名。电影剪辑或接收图像的屏幕的实例名。 |
| Load External Movie Clip(装载外部电影剪辑) |
装载外部SWF文件到目标电影剪辑或屏幕中。 |
外部SWF文件的URL。电影剪辑或接收SWF文件的屏幕的实例名。 |
| Unload Flash Movie(卸载Flash动画) |
删除用Load Movie行为或动作载入的SWF文件。 |
要卸载的电影剪辑或屏幕的实例名。 |
| Duplicate Movieclip(复制电影剪辑) |
复制电影剪辑或屏幕。 |
要复制的电影剪辑实例名。相对于要复制的原电影剪辑的X和Y偏移量(以像素为单位)。 |
| GotoAndPlay at frame or label(跳转某帧或帧标签播放) |
从特定帧播放电影剪辑。 |
要播放的目标电影剪辑实例名。要播放的帧编号或帧标签。 |
| GotoAndStop at frame or label(跳转某帧或帧标签停止播放) |
跳转特定帧并停止播放。 |
要停播的目标电影剪辑实例名。要停播的帧编号或帧标签。 |
| Bring to Front(移到前面) |
移动目标电影剪辑或屏幕到堆叠顺序的顶部。 |
电影剪辑或屏幕的实例名。 |
| Bring Forward(前移) |
在堆叠顺序中前移目标电影剪辑或屏幕一个位置。 |
电影剪辑或屏幕的实例名。 |
| Send to Back(移到后面) |
移动目标电影剪辑或屏幕到堆叠顺序的底部。 |
电影剪辑或屏幕的实例名。 |
| Send Backward(后移) |
在堆叠顺序中后移目标电影剪辑或屏幕一个位置。 |
电影剪辑或屏幕的实例名。 |
| Start Dragging movieclip(允许拖曳电影剪辑) |
允许拖曳电影剪辑。 |
电影剪辑或屏幕的实例名。 |
| Stop Dragging movieclip(停止拖曳电影剪辑) |
停止当前的拖曳。 |
|

视频行为为控制视频回放提供了一种方法。使用Behaviors面板,可以给一个触发对象(如一个按钮)应用行为,然后指定触发行为的事件(如释放按钮),选择目标对象(如要用行为控制的视频),设置行为参数。
1.选择File>Import>Import to Stage(文件>导入>导入到编辑区),在打开的“Import”(导入)对话框中选择一个视频文件(本例为tank.flv),单击打开按钮,把选定的视频导入到编辑区中。然后,在属性检查器中输入实例名tank。
2.选择Window>Other Panels>Common Libraries>Butrtons(窗口>其它面板>公共图符库>按钮),从按钮图符库中把快倒、播放、停止、快进4个按钮拖到编辑区。

3.选择编辑区中的快倒按钮,单击Behaviors面板中的加号(+)按钮,从Embedded Video(嵌入视频)子菜单中选择Rewind(快倒)行为。

4.在弹出的Rewind Video对话框中,选择想用行为控制的视频tank。
5.选择Relative(相对)或Absolute(绝对)路径(一般情况下采用默认值Relative)。
6.如果需要,输入行为参数(本例输入5,即设置单击本按钮一次倒退5帧),单击OK按钮。

7.该行为的默认事件On Release和动作Rewind(快倒)出现在Behaviors面板中。

8.如果要改变鼠标事件,在Event(事件)下面,单击On Release(默认事件),从弹出的菜单中选择一种鼠标事件。本例采用默认的On Release事件,保持此选项不变。
9.选择编辑区中的播放按钮,单击Behaviors面板中的加号(+)按钮,从Embedded Video子菜单中选择Play(播放),参考上述步骤,给该按钮添加Play行为。
10.选择编辑区中的停止按钮,单击Behaviors面板中的加号(+)按钮,从Embedded Video子菜单中选择Stop(停止),给该按钮添加Stop行为。
11.选择编辑区中的快进按钮,单击Behaviors面板中的加号(+)按钮,从Embedded Video子菜单中选择Fast Forward(快进),给该按钮添加Fast Forward行为。
12.选择Control>Test Movie(控制>测试动画),单击画面中的按钮,即可测试视频控制效果。

提示:对动作脚本有兴趣的读者,可以在这里下载源文件,查看应用行为时Flash自动添加的脚本。
下面用表格列出Flash MX 2004和Flash MX Professional 2004中用于控制视频回放的行为。
| 行为 |
用途 |
参数 |
| Play Video(播放视频) |
播放当前文档中的视频。 |
目标视频的实例名。 |
| Stop Video(停播视频) |
停止播放视频。 |
目标视频的实例名。 |
| Pause Video(暂停播放视频) |
暂停播放视频。 |
目标视频的实例名。 |
| Rewind Video(快倒) |
按指定的帧数快倒。 |
目标视频的实例名,帧编号。 |
| Fast Forward Video(快进) |
按指定的帧数快进。 |
目标视频的实例名,帧编号。 |
| Hide Video(隐藏视频) |
隐藏视频。 |
目标视频的实例名。 |
| Show Video(显示视频) |
显示视频。 |
目标视频的实例名。 |
最后实例查看
使用声音行为可以控制声音的播放。可以使用Load Sound from Library(从图符库装载声音)或Load Streaming MP3 File(装载流式MP3文件)行为添加声音到Flash文档中。用这些行为添加声音会创建声音实例,然后通过实例名来控制声音。
使用行为控制声音的操作方法如下:
1.在编辑区中放置一个按钮并选择它。

2.单击Behaviors面板中的加号(+)按钮,从Sound(声音)子菜单中选择Load Streaming MP3 File行为(如果是从图符库中装载声音,选择Load Sound from Library)。

3.在弹出的对话框中,输入MP3声音文件的URL(如果是从图符库中装载声音,输入链接标识符),再给该声音输入实例名(本例输入music),单击OK按钮。

提示:输入MP3文件的URL时,一定要输入扩展名(.mp3)。实例名可以随便输,但要符合变量名的命名规则。
4.该行为的默认事件On Release和动作Load Streaming MP3 File出现在Behaviors面板中。

5.如果要改变鼠标事件,在Event(事件)下面,单击On Release(默认事件),从弹出的菜单中选择一种鼠标事件。本例采用默认的On Release事件,保持此选项不变。
6.在保持编辑区中的按钮被选择的情况下,单击Behaviors面板中的加号(+)按钮,从Sound子菜单中选择Play Sound(播放声音)行为。
7.在弹出的对话框中,输入声音文件的实例名(上面第3步输入的实例名),单击OK按钮。

8.该行为的默认事件On Release和动作Play Sound出现在Behaviors面板中。

提示:本例给一个按钮添加了两种行为(载入声音和播放声音),但使用的是同一种鼠标事件。
9.选择Control>Test Movie(控制>测试动画),单击画面中的按钮,即可测试声音行为的效果。

在这里可以下载本例的源文件。
四、试用感受
使用行为,其实就是使用Macromedia的软件工程师们给我们事先编写好的脚本代码!看看下面的代码吧:
|
on (release) {
// Play Sound Behavior _global.Behaviors.Sound.music.start(0,1); // End Play Sound Behavior
//Load Streaming mp3 behavior if(_global.Behaviors == null)_global.Behaviors = {}; if(_global.Behaviors.Sound == null)_global.Behaviors.Sound = {}; if(typeof this.createEmptyMovieClip == 'undefined'){ this._parent.createEmptyMovieClip('BS_music',new Date().getTime()-(Math.floor((new Date().getTime())/10000)*10000) ); _global.Behaviors.Sound.music = new Sound(this._parent.BS_music); } else { this.createEmptyMovieClip('_music_',new Date().getTime()-(Math.floor((new Date().getTime())/10000)*10000) ); _global.Behaviors.Sound.music = new Sound(this.BS_music); } _global.Behaviors.Sound.music.loadSound("music.mp3",true);
} |
这段代码就是从我们上面的控制声音实例中“Copy”出来的!在这段代码中,要说有我们的“功劳”的话,那就是我们在操作过程中提供了“music”参数,仅此而已。
不用我们自己动手,复杂的脚本就自动生成了,真是太好了!热切盼望正式版和以后的升级版本中增加更多更多的Behaviors!
|