创建交互式动画,创建交互式动画本章主要介绍了

文件 2
ActionScript常用的一些命令及其使用。
通过本章的学习,了解ActionScript2.0和ActionScript3.0的主要区别,熟练掌握常用控制语句、getURL语句、startDrag语句和声音控制语句的使用。
常用控制语句超链接语句getURLstartDrag语句声音控制语句时间获取语句 8.1常用的控制语句 FlashCS3中可以使用的命令有上千条,在此只介绍经常使用的一些命令,利用这些命令可以定义动画的一些简单交互控制。
FlashCS3中有两个编码器:一个是ActionScript2.0编码器,一个是ActionScript3.0编码器。
尽管Adobe建议使用ActionScript3.0,但用户还可以继续使用ActionScript2.0,下面介绍ActionScript2.0中主要使用的命令。
在【动作】面板中,【全局函数】|【时间轴控制】和【全局函数】|【浏览器/网络】类别中提供了许多动作命令,通过对这些命令的使用可以创建出交互式动画,如图8-1所示。
【全局函数】|【时间轴控制】类别提供如下动作命令。
gotoAndPlay:将播放头转到场景中指定的帧并从该帧开始播放。
如果末指定场景,则播放头将转到当前场景中的指定帧。
如gotoAndPlay("scene2",7)表示跳转到scene2场景的第7帧并开始播放。
中文版FlashCS3动画制作实训教程 :将播放头转到场景中指定的帧并停止播放。
如果未指定场景,则播放头将转到当前场景中的帧。
如(50)表示跳转到当前场景的第50帧并停止播放。
nextFrame:将播放头转到下一帧并停止。
nextScene:将播放头移到下一场景的第1帧并停止。
play:在时间轴中向前移动播放头。
prevFrame:将播放头转到前一帧并停止。
如果当前帧为第1帧,则播放头不移动。
prevScene:将播放头移到前一场景的第1帧并停止。
:停止当前正在播放的swf文件。
此动作最通常的用法是用按钮控制动画。
AllSounds:在不停止播放头的情况下,停止swf文件中当前正在播放的所有声音。
但是,在ActionScript3.0中,这些命令成为了flash.display包中的MovieClip类的方法,如图8-2所示。
图8-1常用控制语句 图8-2ActionScript3.0中命令位置 【全局函数】|【浏览器/网络】类别提供如下动作命令。
mand:发送mand命令到动画中。
表8-1列出了可对Flash动画进行控制的mand命令。
命令quitfullscreen 参数无 trueorfalse allowscaletrueorfalse 表8-lmand命令目的 关闭动画 指定true可将FlashPlayer设置为全屏模式。
指定false可将播放器返回到标准菜单视图指定false可设置播放器始终按SWF文件的原始大小绘制SWF文件,从不进行缩放。
指定true会强制将SWF文件缩放到播放器的100%大小 -200- 第8章创建交互式动画 命令showmenuexectrapallkeys 参数trueorfalse指向应用程序的路径 trueorfalse 目的 (续表) 设置是否显示控制菜单及右击快捷菜单命令 在放映文件内执行应用程序。
可以使用绝对路径或相对路径 指定true可将所有按键事件(包括快捷键)发送到FlashPlayer中的onClipEvent(keyDown/keyUp)处理函数 表中描述的命令在Web播放器中都不可用。
所有这些命令在独立的应用程序(例如,放映文件)中都可用。
只有allowscale和exec在测试影片播放器中可用。
例如,用户可以制作两个按钮,分别是控制影片全屏播放的按钮一和控制影片退出全屏播放的按钮
二,按钮上的代码如下。
按钮一: on(release){mand("fullscreen",true);} 按钮2: on(release){mand("fullscreen",false);} getURL:用getURL动作为动画添加链接。
单击该链接,就会在指定的窗口中打开指定的网页,如getURL("hltp://")就是链接到baidu网站;也可以利用该命令打开指定的文件,但文件必须提供文件扩展名。
loadMovie:在播放原始SWF文件的同时将SWF文件或JPEG文件加载到FlashPlayer中。
loadMovieNum:在播放原来加载的SWF文件的同时将SWF文件或JPEG文件加载到FlashPlayer中的某个级别。
URL是UniformResourceLocator(统一资源定位器)的缩写,也就是网络资源的地址。
要测试设置效果,指定的URL绝对路径必须存在(如m)。
要打开的文件必须存放在指定的位置。
loadVariable从外部文件(如文本文件,或由CGI脚本、ASP、PHP或Perl脚本生成的文本)中读取数据,并设置目标影片剪辑中变量的值。
此动作还可用于使用更新SWF文件中的变量。
制作Flash聊天室或Flash论坛就需要此动作。
loadVariablesNum:从外部文件(如文本文件,或由CGI脚本、ASP、PHP或Perl脚本生成的文本)中读取数据,并设置FlashPlayer级别中变量的值。
此函数还可用于使用新值更新活动SWF文件中的变量。
unloadMovie:从FlashPlayer中删除通过loadMovie()加载的影片剪辑。
unloadMovieNum:从FlashPlayer中删除通过loadMovieNum()加载的影片。
-201- 中文版FlashCS3动画制作实训教程 但是,在ActionScript3.0中,mand成为了flash.system包中的方法;getURL成为了包中的navigateToUR方法;loadMovie和loadMovieNum全局函数由flash.display包中的Loader类所替代;loadVariable和loadVariableSNum,由包中的URLLoader类所代替,如图8-3~图8-6所示。
图8-3mand的位置 图8-4getURL的位置 图8-5loadMovie和loadMovieNum的位置图8-6loadVariable和loadVariableSNum的位置 【例8-1】常用控制语句。
本动画实例的目的是:通过对一个有声动画添加按钮并设置动作,来实现最基本的交互效果,以随时控制动画的播放,要实现的控制有:单击【播放】按钮播放动画;单击【停止】按钮停止播放;单击【重新开始】按钮重新播放;单击【下一帧】按钮显示下 -202- 第8章创建交互式动画一帧内容;单击【前一帧】按钮返回上一帧内容;单击【声音】按钮关闭音效。
实例效果如图8-7所示。
图8-7动画运行效果
(1)新建一个Flash文档,在【文档属性】对话框中将舞台定义为900px×300px,背景为白色。

(2)将一个准备好的【鸟】图片导入库中并放置到舞台上,并且创建补间动画使其具有飞翔的效果,如图8-8所示。
图8-8飞翔的鸟
(3)导入鸟叫的声音,将【图层1】改名为【飞翔的鸟】,新建一层,命名为【鸟叫声】,将声音添加到动画中,再新建一层,命名为【按钮】,并在该层上创建6个按钮,分别为【播放】、【停止】、【重新开始】、【下一帧】、【前一帧】和【声音】,如图8-9所示。
图8-9加入声音并创建按钮
(4)按住Alt键,单击按钮层的锁定按钮,锁定其他所有层。
然后使用【对齐】面板对齐创建的按钮。

(5)单击【播放】按钮,按F9键,打开【动作-按钮】,添加如下动作代码。
在本例中,所有 -203- 中文版FlashCS3动画制作实训教程 按钮动作的触发事件都是release。
on(release){play();}
(6)单击【停止】按钮,此时【动作-按钮】面板处于打开状态,添加如下动作代码。
on(release){();}
(7)单击【声音】按钮,添加如下动作代码。
on(release){AllSonunds(); }
(8)单击【重新开始】按钮,添加如下动作代码。
on(release){gotoAndplay
(1); }//单击此按钮,转到当前场景的第1帧并开始播放。

(9)单击【下一帧】按钮,添加如下动作代码。
on(release){nextFrame();} (10)单击【前一帧】按钮,添加如下动作代码。
on(release){prevFrame();} (11)如果想让动画播放完成后自动停止,可以在按钮层的最后一帧插入关键帧,然后添加()动作。
(12)保存文件。
关闭【动作-按钮】面板,按Ctrl+Enter组合键,测试动画的交互效果。
8.2超链接语句getURL getURL命令的语法格式为getURL(url[,window[,"method"]]),作用是将来自特定URL的文档加载到指定的窗口中,或将变量传递到位于所定义的URL的另一个应用程序中。
使用此动作时一定要确保欲加载的文件位于指定的位置。
如果要使用绝对URL(如http://), -204- 第8章创建交互式动画 则需要网络连接。
该命令主要包括如下参数。
url:可从该处获取文档的URL。
window:可选参数,指定文档应加载到其中的窗口或HTML框架。
可以输入特定窗口的名称,或从下面的保留目标名称中选择。
•_self指定当前窗口中的当前框架。
•_blank指定一个新窗口。
•_parent指定当前框架的父级。
•指定当前窗口中的顶级框架。
method:用于发送变量的方法有GET和POST两种,如果没有参数,则省略此参数。
GET方式会将变量添加到URL名称的后面,常用于发送短字符变量;POST方式将变量作为一个单独的标题来发送,常用于发送长字符变量。
【例8-2】getURL应用。
下面的实例使用getURL动作实现不同的超级链接,包括打开网页、打开指定的文件玩纸牌游戏及发送邮件等。
单击“链接到网站”,只要已经接入,就会使用新窗口登录到网页;单击【玩纸牌游戏】图标,出现文件下载对话框,单击【打开】按钮,就可以玩纸牌游戏了;单击【给我写信】图标,就会启动默认的邮件程序(通常为OutlookExpress),让用户写新邮件。
实例效果如图8-10所示。

(1)新建一个Flash文档,舞台大小定义为300px×350px,背景为白色。

(2)制作4个按钮,并将它们在舞台上排列整齐,如图8-11所示。
图8-10动画运行效果 图8-11舞台上的按钮
(3)单击【百度网站】按钮,按F8键,打开【动作-按钮】面板,添加如下动作代码。
on(release){getURL("http://","_blank","GET");}
(4)单击【C盘】按钮,添加如下动作代码。
-205- 中文版FlashCS3动画制作实训教程 on(release){getURL("c:\\");}
(5)单击【玩纸牌】按钮,添加如下动作代码。
on(release){getURL("C:\\windows\\system32\\sol.exe");} 在此路径指定的文件必须存在,否则单击此按钮将弹出错误提示。
假如用户的WindowsXP操作系统安装在C盘,则纸牌游戏的绝对路径就应该是C:windows\System32\sol.exe
(6)单击【给我写信】按钮,添加如下动作代码。
on(release){getURL(【mailto:sucess007@","_self");}
(7)保存文件。
按Ctrl+Enter组合键测试动画的交互效果。
8.3startDrag语句 在本书第7章7.4.4节中已经详细讲了startDrag语句的使用,下面再通过一个具体的实例来加深对startDrag语句的理解。
【例8-3】探照灯效果。
本动画实例的目的是制作鼠标跟随效果。
实例效果如图8-12所示。
图8-12动画运行效果
(1)新建一个Flash文档,舞台大小定义为500px×500px,背景为白色。

(2)选择【插入】|【新建元件】命令,创建一个名为star的影片剪辑元件,单击【确定】按钮,进入元件编辑状态。

(3)单击【多角星形工具】,在【对齐】面板中单击【选项】,进入【工具设置】面板,如图8-13所示,按照图上参数进行设置,然后在舞台上绘制一个任意大小,任意颜色的无边框星形图 -206- 第8章创建交互式动画形。
利用【对齐】面板,使其相对于舞台居中对齐。
并将该图层改名为【星形】,如图8-14所示。
图8-13工具设置 图8-14绘制五星
(4)返回【场景1】,选择【文件】|【导入】|【导入舞台】命令,导入名为【水立方.jpg】的图片,并使其与【舞台】一样大小,并将图层命名为【背景】,如图8-15所示。
图8-15导入背景图片
(5)新建一层,命名为【星】,打开【库】面板,从中将star元件拖入到【舞台】,在【属性】面板中输入实例名称star0,如图8-16所示。
图8-16为元件实例命名
(6)右击【星】图层名称处,在快捷菜单中选择【遮罩层】命令,将【星】图层设置为遮罩,如图8-17所示。

(7)新建一层,更名为【代码】,选中【代码】层第一帧,打开【动作】面板,输入以下脚本startDrag("star0",true);。

(8)保存文件为【探照灯效果.FLA】。
按Ctrl+Enter组合键,测试动画的效果。
-207- 中文版FlashCS3动画制作实训教程 但是,在ActionScript3.0中,startDrag和Drag成为了flash.display包中Sprite类的方法,用户除了可以使用该类中的startDrag方法和Drag方法外,也可以通过在程序代码中使用Sprite类直接在舞台中绘制图形,如图8-18所示。
图8-17将【星】图层设置为遮罩层 图8-18startDrag和Drag的位置 8.4声音控制语句 在Flash中能对动画中的声音进行相应控制,打开【ActionScript2.0类】|【媒体】|【Sound】类别,其声音控制语句如图8-19所示。
-208- 图8-19声音控制语句 第8章创建交互式动画 其常用的控制语句如下。
newSound 该语句用于建立声音对象。
其语法格式如下: newSound();newSound(target); 其中,target表示要加入声音的MovieClipinstance名称,其写法如下: firstSound=newSound();//建立名为firstSound的声音文件 Sound.start该语句用于开始播放声音对象。
其语法格式如下: firstSound.start();firstSound.start([secondOffset],[loops]); 各参数含义如下。
•secondOffset:可选,通过它可以从特定点开始播放声音。
例如,如果用户有一个30秒的声音,而用户希望该声音从中间开始播放,可将secondOffset参数指定为15。
并非声音延迟15秒,而是从15秒标记处开始播放。
•loops:可选,通过它可以指定声音应该连续播放的次数。
如果声音是声音流,则此参数不可用。
该语句用于停止当前播放的所有声音(如果未指定参数),或者只停止播放在参数中指定的声音。
其语法格式如下: ();([linkageID]); 参数含义如下。
linkageID:可选,指定特定声音停止播放的参数。
参数必须置于引号("")之中。
Sound.setVolume该语句用于设置声音的大小。
其语法格式如下: firstSound.setVolume(value); 参数含义如下。
value:―个从0到100之间的数字,表示音量级别。
100为最大音量,而0为没有音量。
默认设置为100。
Sound.attachSound firstSound.attachSound(id); -209- 中文版FlashCS3动画制作实训教程 该语句将在id参数中指定的声音附加到指定的Sound对象。
该声音必须位于当前SWF 文件的库中,并且必须已经在【链接属性】对话框中指定为导出。
必须调用Sound.start()才能开 始播放此声音。
为了确保从SWF文件中的任何场景都可以控制声音,请将声音放置在SWF文 件的主时间轴上。
参数含义如下。
id:库中导出声音的标识符。
该标识符位于【链接属性】对话框。
【例8-4】制作一个通过按钮控制声音的实 例,通过这个实例加深对声音控制语句的理解。
当用户单击绿色的按钮时,即可播放音乐,单击 红色的按钮,即可停止音乐。
实例效果如图8-20 所示。

(1)新建一个Flash文档,舞台大小定义为 500px×500px,背景为白色。

(2)选择【文件】|【导入】|【导入舞台】命 令,导入名为【风景.jpg】的图片,并使其与【舞台】一样大小,并将图层命名为【背景】,选中本 层的第200帧,按F5键插入帧。

(3)选择【文件】|【导入】|【导入库】命令, 导入名为【轻音乐】的MP3文件。
图8-20动画运行效果
(4)新建一层,命名为【按钮】,选择【窗口】|【公用库】|【按钮】命令,从中选择两个不 同颜色按钮拖动到舞台上,放在合适的位置,其中绿色的按钮用来打开音乐,红色的按钮用来停 止音乐,如图8-21所示。
-210- 图8-21添加按钮后 第8章创建交互式动画
(5)打开【库】面板,右击音频文件,在快捷菜单中选择【链接】命令,如图8-22所示。

(6)在弹出的【链接属性】对话框中选择【为ActionScript导出】复选框,在【标识符】文本框中输入music,如图8-23所示,单击【确定】按钮。
图8-22【链接】命令 图8-23【链接属性】对话框
(7)新建一层,命名为【代码】,选中第1帧,打开【动作】面板,输入如下代码,如图8-24所示。
s=newSound();s.attachSound("music"); 图8-24【代码层】第1帧代码 -211- 中文版FlashCS3动画制作实训教程
(8)选中绿色按钮,打开【动作】面板,输入以下代码: on(release){s.start();play();}
(9)选中红色按钮,打开【动作】面板,输入以下代码: on(release){();play();} (10)保存文件为【声音控制语句】。
按Ctrl+Enter组合键测试动画的运行效果。
8.5时间获取语句 在Flash中使用时间获取语句,可对电脑中的系统时间进行提取,以实现某些特定的功能(如实现时间显示功能),打开【ActionScript2.0类】|【核心】|【Date】类别,其时间获取语句如图8-25所示。
-212- 其常用的控制语句如下: newDate 图8-25时间获取语句 第8章创建交互式动画 该语句用于构造一个新的Date对象,该对象将保存指定的日期和时间。
其语法格式如下: newDate();newDate([yearOrTimevalue],[month],[date],[hour],[minute],[second],[millisecond]); Date()构造函数最多可使用7个参数(year、month、...millisecond)。
各参数含义如下。
•yearOrTimevalue:可选,如果指定了其他参数,则此数字表示年份(如1965);否则,它表示时间值。
如果该数字表示年份,则0至99之间的值表示1900年至1999年;否则,必须指定表示年份的所有4位数字,如2009。
如果该数字表示时间值(未指定任何其他参数),则为GMT时间1970年1月1日0:00:00之前或之后的毫秒数;负值表示GMT时间1970年1月1日0:00:00之前的某个时间,而正值表示该时间之后的某个时间。
•month:可选,这个参数表示月份,取值范围为0(一月)到11(十二月)之间的整数。
•date:可选,这个参数表示日期,取值范围为1到31之间的整数。
•hour:可选,这个参数表示小时数,取值范围为0(午夜)到23(晚上11点)之间的整数。
•minute:可选,这个参数表示分钟数,取值范围为0到59之间的整数。
•second:可选,这个参数表示秒数,取值范围为0到59之间的整数。
•millisecond:可选,取值范围为0到999之间的整数(毫秒)。
如检索当前日期和时间: varnow_date:Date=newDate();trace(now_date); 如为Mary的生日(1974年8月12日)创建一个新的Date对象(由于月份参数从零开始,所以此示例使用7而不是8表示月份): varmaryBirthday:Date=newDate(74,7,12);trace(maryBirthday); Date.getYear按照本地时间返回指定的Date对象的年份。
这里的年份是指完整的年份值减去1900。
其语法格式如下: today_date.getYear(); 如: vartoday_date:Date=newDate(2004,4);trace(today_date.getYear());//输出104,表示2004年 Date.getFullYear按照本地时间返回指定的Date对象中的完整年份值(一个4位数,例如2000)。
其语法格式如下: -213- 中文版FlashCS3动画制作实训教程 today_date.getFullYear(); 如: vartoday_date:Date=newDate();trace(today_date.getFullYear());//输出2009 Date.getMonth按照本地时间返回指定的Date对象中的月份值(0代表一月,1代表二月,依此类推)。
其语法格式如下: today_date.getMonth(); 如: vartoday_date:Date=newDate();trace(today_date.getMonth()); Date.getDate按照本地时间返回指定的Date对象中表示月中某天的值(1到31之间的整数)。
其语法格式如下: today_date.getDate(); 如: vartoday_date:Date=newDate();trace(today_date.getDate()); Date.getDay按照本地时间返回指定的Date对象中表示星期几的值(0代表星期日,1代表星期
一,依此类推)。
其语法格式如下: today_date.getDay(); 如: vartoday_date:Date=newDate();trace(today_date.getDay()); Date.getHours按照本地时间返回指定的Date对象中的小时值(0到23之间的整数)。
其语法格式如下: today_date.getHours(); 如: vartoday_date:Date=newDate(); -214- 第8章创建交互式动画 trace(today_date.getHours()); Date.getMinutes按照本地时间返回指定的Date对象中的分钟值(0到59之间的整数)。
其语法格式如下: today_date.getMinutes(); 如: vartoday_date:Date=newDate();trace(today_date.getMinutes()); Date.getSeconds按照本地时间返回指定的Date对象中的秒钟值(0到59之间的整数)。
其语法格式如下: today_date.getSeconds(); 如: vartoday_date:Date=newDate();trace(today_date.getSeconds()); Date.getMilliseconds按照本地时间返回指定的Date对象中的毫秒数(0到999之间的整数)。
其语法格式如下: today_date.getMilliseconds(); 如: vartoday_date:Date=newDate();trace(today_date.getMilliseconds()); Date.getTime返回指定的Date对象自1970年1月1日午夜(通用时间)以来的毫秒数。
其语法格式如下: today_date.getTime(); 如: vartoday_date:Date=newDate();trace(today_date.getTime()); Date.getTimezoneOffset以分钟为单位,返回计算机的本地时间和通用时间之间的差值。
其语法格式如下: today_date.getTimezoneOffset(); -215- 中文版FlashCS3动画制作实训教程 如: vartoday_date:Date=newDate();trace(today_date.getTimezoneOffset());//输出-480,北京时间比通用时间慢8小时 8.6习题
1.填空题 (1)getURL命令的语法格式为 。

(2)Flash常见的全屏显示,可以通过添加 命令来实现。

(3)Flash中利用 命令可以实现拖曳影片剪辑,使用 辑的拖曳。

2.简答题 命令可以停止影片剪
(1)简述ActionScript2.0和ActionScript3.0的主要区别。

(2)【全局函数】|【时间轴控制】类别提供了哪些动作命令?
3.上机题 发挥自己的想象和创意,设计制作一个动画,在该动画里尽可能多地使用本章所讲解的命令。
-216-

标签: #文件夹 #c盘怎么格式化 #信上 #主键 #正确 #镜像 #coursera #命令