关于flash动作脚本
- 格式:doc
- 大小:50.00 KB
- 文档页数:5
关于Flash动作脚本--ActionScript ActionScript即动作脚本,简称AS。
在Flash动画中,使用AS 可以使动画实现交互或完成某些特效。
一、AS要写在什么地方,什么时候AS被触发执行?1、关键帧:写在关键帧上面的AS,当时间轴上的指针走到这个关键帧的时候,写在这个帧上面的AS就被触发执行了。
例如要让影片播放完成后停在最后一关键帧,操作方法就是点选最后一帧关键帧,然后打开动作面板,在面板中输入stop()。
2、按钮:不同于关键帧上面的AS,按钮上面的AS要有触发条件。
要把AS 写在按钮上,操作方法是点选目标按钮,然后打开动作面板。
例如:假设有个按钮,效果是按下按钮后停止播放,那么步骤如下:做一个按钮,放到主场景,点选按钮,然后打开AS面板。
现在如果也在按钮上写:on(release){stop();} //这里要比帧的动画多这些代码: on(release){}其中release是鼠标的触发事件事件之一,作用是松开按钮,按钮的常用事件:写在按钮上面的AS的格式:on(事件){要执行的代码} ,即按钮上的3、MC(影片剪辑)写在影片剪辑上的AS和写在按钮上的大同小异。
操作方法就是点选影片剪辑,然后打开动作面板。
看个例子:onClipEvent(load){stop();}这里load代表一个事件。
影片剪辑的事件有下面这些:写在MC上的代码格式: onClipEvent(事件){代码}二、AS中的对象和方法虽然AS不是真正的面向对象的编程,但它的概念贯穿整个AS的始终。
1、AS中的对象新建一个Flash文件,先创建一个命令按钮,然后创建一个影片剪辑,将命令按钮拖到影片剪辑中,命名为“myBtn”。
将影片剪辑拖到主场景中,命名为“myMC”。
现在如何表示主场景、影片剪辑、和按钮呢?方法如下:_root――主场景(主时间轴)_root.myMC ――主场景中的剪辑myMC_root.myMC.myBtn ――主场景的剪辑myMC中的按钮myBtn 这里的_root是Flash的关键字,表示主场景的 Timeline (时间轴)。
详解一、FLASH脚本基础入门讲解 (1)二、按钮AS的编写 (4)三、影片剪辑的AS编写 (5)四、动态文本框 (6)五、影片剪辑的拖拽 (8)六、流程控制与循环语句 (10)七、绘图及颜色的AS的编写 (12)八、声音AS 的编写与控制 (14)九、时间日期的AS编写 (17)十、点语法以及路径 (18)十一、深入了解时间控制 (20)十二、无条件转移 (23)十三、变量 (28)十四、运算符(一) (33)十五、变量(二) (38)十六、影片剪辑的属性 (41)十七、再讲循环语句 (47)十八、影片剪辑处理函数 (53)十九、复制影片剪辑 (58)二十、深入startDrag()与stopDrag() (61)二十一、for循环 (65)二十二、while与do while循环 (69)二十三、循环语句的嵌套 (73)二十四、组件 (75)二十五、播放器控制与网页连接以及动画发布输出 (78)二十六、loadV ariables命令 (79)二十七、影片剪辑的深度 (80)二十八、文本框 (82)二十九、超文本标签 (83)一、FLASH脚本基础入门讲解认识“动作”面板在Flash中,动作脚本的编写,都是在“动作”面板的编辑环境中进行,熟悉“动作”面板是十分必要的。
按【F9】键调出“动作”面板,可以看到“动作”面板的编辑环境由左右两部分组成。
左侧部分又分为上下两个窗口。
左侧的上方是一个“动作”工具箱,单击前面的图标展开每一个条目,可以显示出对应条目下的动作脚本语句元素,双击选中的语句即可将其添加到编辑窗口。
下方是一个“脚本”导航器。
里面列出了FLA文件中具有关联动作脚本的帧位置和对象;单击脚本导航器中的某一项目,与该项目相关联的脚本则会出现在“脚本”窗口中,并且场景上的播放头也将移到时间轴上的对应位置上。
双击脚本导航器中的某一项,则该脚本会被固定。
右侧部分是“脚本”编辑窗口,这是添加代码的区域。
详解一、FLASH脚本基础入门讲解 (1)二、按钮AS的编写 (4)三、影片剪辑的AS编写 (5)四、动态文本框 (6)五、影片剪辑的拖拽 (8)六、流程控制与循环语句 (10)七、绘图及颜色的AS的编写 (12)八、声音AS 的编写与控制 (14)九、时间日期的AS编写 (17)十、点语法以及路径 (18)十一、深入了解时间控制 (20)十二、无条件转移 (25)十三、变量 (29)十四、运算符(一) (35)十五、变量(二) (39)十六、影片剪辑的属性 (43)十七、再讲循环语句 (49)十八、影片剪辑处理函数 (55)十九、复制影片剪辑 (60)二十、深入startDrag()与stopDrag() (63)二十一、for循环 (67)二十二、while与do while循环 (71)二十三、循环语句的嵌套 (75)二十四、组件 (77)二十五、播放器控制与网页连接以及动画发布输出 (80)二十六、loadVariables命令 (81)二十七、影片剪辑的深度 (82)二十八、文本框 (84)二十九、超文本标签 (85)一、FLASH脚本基础入门讲解认识“动作”面板在Flash中,动作脚本的编写,都是在“动作”面板的编辑环境中进行,熟悉“动作”面板是十分必要的。
按【F9】键调出“动作”面板,可以看到“动作”面板的编辑环境由左右两部分组成。
左侧部分又分为上下两个窗口。
左侧的上方是一个“动作”工具箱,单击前面的图标展开每一个条目,可以显示出对应条目下的动作脚本语句元素,双击选中的语句即可将其添加到编辑窗口。
下方是一个“脚本”导航器。
里面列出了FLA文件中具有关联动作脚本的帧位置和对象;单击脚本导航器中的某一项目,与该项目相关联的脚本则会出现在“脚本”窗口中,并且场景上的播放头也将移到时间轴上的对应位置上。
双击脚本导航器中的某一项,则该脚本会被固定。
右侧部分是“脚本”编辑窗口,这是添加代码的区域。
一、play命令(播放)1、使用格式play()该命令没有参数,功能是使动画从它的当前位置开始放映。
二、stop命令(停止播放)1、使用格式stop()该命令没有参数,功能是停止播放动画,并停在当前帧位置。
三、gotoAndPlay命令(跳至…播放)1、使用格式gotoAndPlay(frame)参数说明:frame:跳转到帧的标签名称或帧数。
该命令用来控制影片跳转到指定的帧,并开始播放。
2、用法举例gotoAndPlay(10)以上动作代码的作用是:让播放头跳转到当前场景的第10帧并从该帧开始播放。
四、gotoAndStop命令(跳至…停止播放)1、使用格式gotoAndStop(frame)参数说明:frame:跳转到帧的标签名称或帧数。
该命令用来控制影片跳转到指定的帧,并停止在该帧。
2、用法举例gotoAndStop(10)以上动作代码的作用是:让播放头跳转到当前场景的第10帧并停止在该帧。
五、stopAllSounds命令(停止所有音轨)1、使用格式stopAllSounds()该命令没有参数用来停止当前FlashPlayer中播放的所有声音。
六、if...else语句(条件语句)1、使用格式if (条件) {语句1;} else {语句2;}当条件成立时,执行“语句1”的内容。
当条件不成立时,执行“语句2”的内容。
2、用法举例if(a>b) { //判断a是否大于btrace("a>b"); //若成立,则输出a>b} else {trace("b>=a"); //若不成立则输出b>=a}七、switch...case...default语句(条件语句)1、使用格式switch (表达式) {case值1:执行语句1;break ;case值2:执行语句2;break ;……default:语句;}先计算表达式的值,然后去各个case子句中寻找对应的执行语句。
flash常用动作脚本语言影片控制:gotoAndplay 将播放头转到场景中指定的帧并从该帧开始播放gotoAndstop 将播放头转到场景中指定的帧并停止播放nextFrame 将播放头移到下一帧并停止nextScence 将播放头移到下一场景的第一帧并停止on 指定触发动作的鼠标事件或者按键事件play 在时间轴中向前移动播放头prevFrame 将播放头移到上一帧并停止stop 停止当前正在播放的影片stopAllSound 在不停止播放头的情况下停止影片中当前正在播放的所有声音浏览器/网络fscommand 使影片能够与Flash player或承载Flash player的程序进行通信geturl 将来自特定URL的稳当加载到窗口中loadmovie 在播放原始影片的同时将SWF文件加载到Flash player中loadmovienum 在播放原始用片的同时将SWF文件加载到Flash player的某个级别loadvariables 从外部文件读取数据,并设置Flash player级别或变量的值loadvariablesnum 从外部文件读取数据,并设置Flash player级别中的变量的值unloadmovie 从Flash player中删除一个已加载的影片或影片剪辑unloadmovienum 从Flash player中删除已加载的影片影片剪辑控制duplicatemovieclip 当影片正在播放时,创建一个影片剪辑的实例onclipevent 触发为特定影片剪辑实例定义的动作removemovieclip 删除用attachmovie或duplicatemovieclip创建的影片剪辑实例setproperty 当影片播放时,更改影片剪辑的属性值startdrag 是target影片剪辑在影片播放过程中可拖动stopdrag 停止当前的拖动操作update afterevent 更新显示变量delete 销毁由reference参数指定的对象或变量set variable 为变量赋值var 用于声明局部变量with 指定一个对象条件/循环break 命令Flash挑过循环体的其余部分,停止循环动作case 定义用语switch动作的条件countinue 跳过循环体,重新判断循环条件default 定义switch动作的默认情况do while 执行语句,然后只要条件为true,就计算循环中的条件else 指定当if语句中的条件返回false时要进行的语句else if 计算条件,并指定当初始if语句返回false时要进行的语句for 只要初始化表达或结果为ture,则按照以下顺序开始循环序列for in 循环通过数组中的对象的属性,并为对象的每一个属性执行动作if 对条件进行计算以确定影片中的下一步动作switch 创建动作脚本语句的分支结构while 测试表达式,只要该表达式为ture,就重复运行循环中的语句打印print 根据在参数中所指定的边界打印影片剪辑printasbitmap 将目标影片剪辑作为位图打印printasbitmapnum 将Falsh player中的某个级别作为图进行打印printnum 根据参数中指定的边界打印Falsh player中的级别用户定义函数call 执行被调用桢中的脚本,而不将播放头移动到该帧function 定义用来执行特定任务的函数return 指定由函数返回的值其他动作#endinitclip 指示组件初始化动作块的结尾#include 包括当测试,发布或导出影片时参数中指定的文件内容#initclip 指示组件初始化动作块的开始clearinterval 清除对setinterval函数的调用// 指示脚本注释的开始setinterval 间隔标识符trace 在测试模式下,计算表达式并在输出窗口中显示结果1.动作脚本语言的语法规则的操作技巧详解。
FLASH实例动作脚本代码集锦1、下雨:新键一个影片剪辑。
在里面作出来一滴雨落下得效果。
然后设置他的实例名称为“CC”然后返回到场景1。
在之后就是从库里面把那个影片剪辑托到舞台上。
在之后在第2。
3贞上面插入关键贞。
在第一贞动作里面写上var i; i=1;在第2贞上面写上duplicateMovieClip("CC","CC"+i,i); m=this["CC"+i]; m._x=random(550);m._y=random(450); i=i+1; if(i==50){i=10}第3贞上面写上gotoAndPlay(2);2、下雪将雪花拖入到主场景中,放置于舞台外,并封装为snow_mc,在第一帧as编辑区里加入下面的AS语句:stop();var i;//产生60个小雪花for (i=1; i<60; i++) {//产生新的雪花剪辑元件snow_mc.duplicateMovieClip("snow"+i+"_mc", i);//新的雪花的X,Y坐标eval("snow"+i+"_mc")._x = random(800);eval("snow"+i+"_mc")._y = random(560);//新的雪花的形变scale = random(60)+50;//不同的透明度,产生层次感eval("snow"+i+"_mc")._alpha = scale;//不同的大小,产生层次感eval("snow"+i+"_mc")._xscale = scale;eval("snow"+i+"_mc")._yscale = scale;//加入控制雪花的AS语句snow(eval("snow"+i+"_mc"));}//这个函数是用来产生一个新的雪花function createSnow() {//xx递加i++;//产生实例snow_mc.duplicateMovieClip("snow"+i+"_mc", i);eval("snow"+i+"_mc")._x = random(800);eval("snow"+i+"_mc")._y = random(560);scale = random(60)+50;eval("snow"+i+"_mc")._alpha = scale;eval("snow"+i+"_mc")._xscale = scale;eval("snow"+i+"_mc")._yscale = scale;snow(eval("snow"+i+"_mc"));}//加入控制雪花的AS语句的函数function snow(snow_mc) {snow_mc.onLoad = function() {//舞台大小stage_x = 800;stage_y = 560;//用来判断是否降落this.moving = true;//风向和风力windx = (_xmouse-stage_x/2)/100;};//风向和风力随鼠标的移动而改变snow_mc.onMouseMove = function() {windx = (_xmouse-stage_x/2)/100;updateAfterEvent();};snow_mc.onEnterFrame = function() {//判断movingif (this.moving) {//随机数用来产生摇摆效果s = random(2);//雪花下落this._y += 10;if (s == 0) {this._x += 5;} else if (s == 1) {this._x -= 5;}//加上风力this._x += windx;//超出舞台就初始化if (this._y>stage_y || this._x<0) {this._y = 0;this._x = random(stage_x);}//产生旋转效果this._rotation = random(180);}}}3、点播:在场景中添加输入文本框,使变量名为x。
flash动作脚本-动态文本框、影片剪辑的拖拽、流程控制与循环语句四、动态文本框一、flash 中的动态文本使用方法在flash中,文本工具提供了三种文本类型。
分别是:静态文本、动态文本和输入文本。
下面讲解的内容属于动态文本的AS 编写规则。
要创建一个动态文本非常简单,只需要选中文本工具,然后选择动态文本类型,然后在舞台上拖拽出所需要的动态文本框就行了。
二、如何为动态文本赋值当在舞台上拖拽出动态文本框之后,可以直接在里面进行文本输入或粘贴外部文本内容。
那么用AS 如何来对动态文本框赋值呢?在这里为大家介绍两种方法进行赋值!1、使用动态文本的实例名字来赋值操作步骤:(1)在舞台上创建一个动态文本框,并为这个动态文本实例起一个名字,例如abc(2)选中时间轴的第一桢,打开动作面板,输入以下脚本:abc.text = "爱国者安全网"按下ctrl+回车就可进行测试了。
从这个简单的例子可以知道,如果要用文本实例名字来进行赋值的话,必须使用以下格式:动态文本实例的名字.text=”需要赋值的内容”2、使用变量来赋值(1)在舞台上创建一个动态文本框,并为这个动态文本实例起一个变量名3800hk。
(2)选中时间轴的第一桢,打开动作面板,输入以下脚本:3800hk= "欢迎大家来到爱国者安全网学习!"不难看出,使用变量赋值更为简单实用!赋值格式为:变量名=“赋值的内容”以上两种赋值方法如果内容过多需要换行的时候,需要使用行用回车符(“\r”即ASCII13)分隔!三、如何载入外部txt 文本里的内容当内容过多的时候,使用上面的方法并不是太好,我们可以使用下面的方法,从外部获取文本资料内容!而外部的资料内容就放在一个普通的txt(记事本)文件中。
具体操作步骤如下:1、创建一个动态文本实例,并为这个动态文本实例起一个变量名hk2、选中时间轴的第一桢,打开动作面板,输入以下脚本:loadVariablesNum("heiying.txt", 0);//载入外部名字叫heiying.txt 的文本文件,加载级别为03、现在来准备外部的heiying.txt 文本文件了。
Flash按钮动作代码、脚本代码大全Flash按钮动作代码1、转下一帧并继续播放on (release){play();}2、转第三帧并播放on (release){gotoAndPlay(03);stopAllSounds();}3、全屏播放fscommand("fullscreen", "true");4、退出on (release){if (substring(_root._url, 8, 1) == "/"){fscommand("quit");}else{getURL("javascript:window.close()");} // end if}5、返回第一帧on (release){gotoAndPlay(01);stopAllSounds();}FLASH脚本代码大全- Go to 跳转到指定的帧- Play 播放- Stop 停止- Toggle High Quality 在高画质和低画质间切换- Stop All Sounds 停止所有声音的播放- Get URL 跳转至某个超联结- FSCommand 发送FSCommand命令- Load Movie 装载影片- Unload Movie 卸载影片- Tell Target 告知目标- If Frame Is Loaded ..判断帧是否被完全载入- On Mouse Event 鼠标事件。
其他Actions。
包括:- break 跳出循环- call 调用指定帧(一般喊有某个特定函数)- comment 注释- continue 继续循环- delete 删除一个对象(Object)中的变量- do while do while循环- duplicateMovieClip 复制MC- else 否则(与if联用)- else if 否则如果(与if联用)- evaluate 调用自定义函数(Function)- for for循环- for .. in 依次取得对象(Object)中的各个属性或者某个数组中的所有元素- FSCommand 发送FSCommand命令- function 声明自定义函数- getURL 跳转至某个超联结- goto 跳转到指定的帧- if 如果- ifFrameLoaded ..帧是否完全被载入- include 读入外部的ActionScript程序文件(.as)- loadMovie 装载MC- loadVariables 转载外部文件中的数据,这些外部文件可以是文本文件,或者是由ASP/CGI等脚本返回的文本值- on 鼠标事件的触发条件- onClipEvent MC的事件触发程序- play 播放- print 输出到打印机- removeMovieClip 删除MC- return 在函数(function)中返回一个值- set variable 设定变量值- setProperty 设定属性- startDrag 开始拖动- stop 停止- stopAllSounds 停止所有声音的播放- stopDrag 停止拖动- swapDepths 交换两个MC的深度- tellTarget 指定Action命令生效的目标- toggleHighQuality 在高画质和低画质间切换- trace 跟踪调试- unloadMovie 卸载MC- var 声明局部变量- while 当..成立时..- with 对..对象(Object)做..。
Flash中的动作脚本1.1什么是ActionScriptActionScript是Flash的脚本语言。
可以使用ActionScript控制Flash中的对象,创建向导和交互元素,也可以扩展Flash,制作高级交互影片和Flash交互网站。
1.2动作脚本所附加的位置1.附着在按钮实例上方法:选择场景中的按钮,单击鼠标右键,从弹出的快捷菜单中选择“动作”(Action),在打开的“动作”面板中添加ActionScript脚本。
使用:在动画播放时,发生按钮事件时,即会触发附着在其上对应事件的捕捉函数并运行该函数或指令。
2.附着在关键帧上方法:在想要附着动作脚本的关键帧上单击鼠标右键,从弹出的快捷菜单中选择“动作”,在打开的“动作”面板中添加动作脚本。
使用:在动画播放时,只要该关键帧被播放一次,附着在它上面的脚本就执行一次。
显示:附着有动作脚本的关键帧会显示一个a。
3.附着在影片剪辑上方法:在场景的影片剪辑上单击鼠标右键,从弹出的快捷菜单中选择“动作”,在打开的“动作”面板中添加动作脚本命令,该脚本就附着在影片剪辑上。
使用:当对影片剪辑发生各种事件时,就触发了附着在其上的捕捉函数,开始运行捕捉函数中的脚本命令。
1.3ActionScript相关述语1.实例:属于某个类的对象,同类对象的实例具有该类对象的所有共同特性。
例如每一个影片剪辑都是MovieClip类的一个实例,它们都具有_x、_y、_alpha 等属性。
每个实例都对应着一个标识该实例的标识符,称为实例名称。
要用程序控制或使用某个实例,就需要用到实例名称。
例如,要让影片剪辑实例(名称为myCan)中的动画播放,可以使用如下脚本程序:“myCar.play();”。
其中,myCar 表示实例名称,play()是MovieClip类的方法,它们之间用(.)连接起来。
2.对象:特定类的实例,是属性和方法的集合。
按钮是对象,影片剪辑是对象。
3.事件:是SWF文件播放时对象所发生的动作。
一、play命令(播放)1、使用格式play()该命令没有参数,功能是使动画从它的当前位置开始放映。
二、stop命令(停止播放)1、使用格式stop()该命令没有参数,功能是停止播放动画,并停在当前帧位置。
三、gotoAndPlay命令(跳至〃播放)1、使用格式gotoAndPlay(frame)参数说明:frame:跳转到帧的标签名称或帧数。
该命令用来控制影片跳转到指定的帧,并开始播放。
2、用法举例gotoAndPlay(10)以上动作代码的作用是:让播放头跳转到当前场景的第10帧并从该帧开始播放。
四、gotoAndStop命令(跳至〃停止播放)1 / 411、使用格式gotoAndStop(frame)参数说明:frame:跳转到帧的标签名称或帧数。
该命令用来控制影片跳转到指定的帧,并停止在该帧。
2、用法举例gotoAndStop(10)以上动作代码的作用是:让播放头跳转到当前场景的第10帧并停止在该帧。
五、stopAllSounds命令(停止所有音轨)1、使用格式stopAllSounds()该命令没有参数用来停止当前FlashPlayer中播放的所有声音。
六、if...else语句(条件语句)1、使用格式if (条件){语句1;} else {语句2;}当条件成立时,执行〃语句1〃的内容。
当条件不成立时,执行〃语句2〃的内容。
2、用法举例if(a>b) { 〃判断a是否大于btrace("a>b"); 〃若成立,则输出a>b} else {trace(H b>=a H); 〃若不成立则输出b>=a}七、switch...case...default 语句(条件语句)1、使用格式switch (表达式){case 值1:执行语句1;break ;case 值2:执行语句2;break ;……default:语句;}先计算表达式的值,然后去各个case子句中寻找对应的执行语句。
1 、简单loading 代码:方法 1 、使用载入字节数判断b=getBytesTotal();// 获取总的字节数a=getBytesLoaded();// 已经下载的字节数onEnterFrame=function(){// 进入帧时, 进行判断if (a == b) {// 如果载入的字节数等于总的字节数delete this.onEnterFrame// 删除进入帧gotoAndPlay("frame");// 转入到你要播放的帧] else {// 否则a=getBytesLoaded();// 已经下载的字节数percent=int(a/b*100)+"%";// 计算已经下载的百分比]}把上面方法放入第一帧就可以了方法 2 、使用载入的帧数判断_用Action 语法地if frame is loaded 来实现, 新建一层,这层专门放Action,第一帧,ifFrameLoaded (" 场景", frame) {// 假如场景中地祯数已经载入goto and play() // 跳至并播放某某祯( 自己设定)}第二帧,O*Np@Qgoto and play(" 场景1", 1)// 跳至并播放第一祯循环再加上一个load 地MC 循环播放在这两帧的中间,就OK 了。
2 、用flash 做那种弹出的小窗口分两步:给flash 中的按钮加入如下action:on (release) { idd{getURL ("javascript:MM_openBrWindow('newweb.htm','','width=600,height=100')");在HTML 页面的... 之间加入下面的javascript 代码.3 、载入swf 文件的控制在flash 中可以使用loadmovie ()和loadmovienum ()两个函数控制,具体代码如下:loadmovie 载入的控制_root.createEmptyMovieClip ( "aa" , 1 );with ( aa ) {_x = 50 ;_y = 100 ;_width=200_height=300_alpha=50loadMovie ( "02.swf" );}loadMovieNum 的载入控制:loadMovieNum ( "02.swf" , 1 );onEnterFrame = function () {if ( _level1 ) {with ( _level1 ) {_x = 50 ;_y = 100 ;}delete onEnterFrame ;}};在flash 2004 中,增加了MovieClipLoader 类,使用它可以控制播放,下面是一个测试代码:var mcl= new MovieClipLoader(); // 定义新的MovieClipLoader 对象~var listener = new Object(); // 定义一个新的对象,用来监听load 进程listener.onLoadProgress=function(target,loadedBytes,totalBytes ){ //onloadprogress 加载过程中每当将加载的内容写入磁盘时调用// 其中loadedBytes 是已经下载的字节,totalBytes 是正在加在的文件的总字节数x=loadedBytesy=totalBytes//trace(x+ " bytes 已经load 了");//trace(totalBytes + " bytes 需要load");d=x*100/y // 计算已经载入的百分比)listener.onLoadInit = function(target) // 当执行加载的剪辑的第一帧上的动作时调用{if(d<100){ // 如果没有加载完成,不要播放target.stop();} else { // 加载完成,可以设置加载的swf 文件开始播放的帧数target.gotoAndPlay(2);}target._width=400 // 设置加载的影片的大小及其位置等相关属性target._height=350target._x=25target._y=50}mcl.addListener(listener); // 注册一个新的监听对象mcl.loadClip("***.swf",1)// 使用自定义的对象,加载swf 文件4 、设为首页on (release) {getURL("javascript:void(document.links.style.behavior='url(#default#homepage)');voiddocument. links.setHomePage(' /')", "_self", "POST");}注意要将网页中的flash 的ID 号命名为"links"加入收藏夹on (release) {getURL("javascript:void window.external.AddFavorite(' ',' 网页');", "_self", "POST");}5 、如何随机设置MC 颜色?方法 1 、MC 实例名为"mc"mycolor=new Color("mc")mycolor.setRGB(random(0xffffff))方法 2 、MC 实例名为"mc"mycolor=new Color("mc") [mycolor.setRGB(random(16777215))方法 3 、myColor = new Color(mc);myColorTransform = new Object();// 用new Object() 为//setTrandform() 创建参数并随机取值myra = random(100);myrb = random(255);myga = random(100);mygb = random(255);myba = random(100);mybb = random(255);myaa = random(100);myab = random(255);myColorTransform = {ra:myra, rb:myrb, ga:myga, gb:mygb, ba:myba, bb:mybb, aa:myaa, ab:myab};myColor.setTransform(myColorTransform);方法 4 、mycolor = new Color(mc);mycolor.setRGB(random(255)<<16|random(255)<<8|random(255));6 、关于随机数的技巧用来产生6--20 之间的 5 个不重复的随机数1): 首先产生一个随机数, 放在数组对象中的第一个位置2): 产生一个新的随机数3): 检查新产生的随机数和所有目前已产生的随机数是否相同, 若是相同则返回(2), 否则返回(4)4): 将新的随机数加入数组对象中下一个数组元素内5): 检查数组对象个数是否已达到 5 个, 若是跳到(6), 否则返回(2)6): 结束AS 如下:data1=newArray(5);tot=1;data1=[tot-1]=random(20-6+1)+6;do{gen_data=random(20-6+1)+6;reapeat_data=0;for(i=0,i<=tot-1;i++){if(gen_data==datareapeat_data=1;break;}}if(reapeat_data==0){tot++data[tot-1]=reapeat_data;}}while(tot<5);trace(data1);7 、如何禁止右键菜单、缩放、全屏在第一桢中输入下面命令:全屏->FS Command ("fullscreen", true)禁止缩放->FS Command ("allowscale", False)禁止菜单->FS Command ("showmenu", False)fscommand 的方法还是只能适用于fp ,在网页中使用还是必须添加额外的参数或者用最简单的一句as ,在fp 和网页中均适用:Stage.showMenu=false;8 、如何实现双击效果?把下面的代码放到按钮上:on (press) {time = getTimer()-down_time;if (time<300) {trace("ok");}down_time = getTimer();}这样的话,如果都用比较麻烦,写了一个类来判断MovieClip.prototype.doubleClick = function() {this.timer2 = getTimer()/1000;if ((this.timer2-this.timer)<0.25) {return true;} else {this.timer = getTimer()/1000;return false;}};继承了mc 的类,可以重复使用,当然也可以封装为2 。
Flash动作脚本基础(一)动作脚本添加的三种方式:帧、影片剪辑(mc)和按钮1.给帧加动作:给帧加动作时,只需选择需要加脚本的帧,打开动作面板,直接输入脚本即可。
2.给按钮加动作:给按钮加动作时需要选择【影片剪辑控制】集合中的on命令。
这个命令是专门为按钮设计的,它提供了八种按钮的事件。
分别是按下、滑过、释放、滑离、外部释放、拖过、拖离和按键。
① press在鼠标指针经过按钮时按下鼠标按钮,会触发本事件一次。
②release在鼠标指针经过按钮时释放鼠标按钮,会触发本事件一次。
③releaseOutside当鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮之外,此时释放鼠标按钮,会触发本事件一次。
可以利用on的这个事件来制作游戏。
④rollOut鼠标指针滑出按钮区域,会触发本事件一次。
⑤rollOver 鼠标指针滑过按钮,会触发本事件一次。
当鼠标指针从按钮上滑过的时候,动画就开始执行播放动作了,而不需要点击它。
我们可以利用on的这个特点来制作一些图示板,非常简单有效。
滑离与滑过并不是相同的,滑离是指鼠标滑动到按钮上并离开以后开始响应,而滑过是指只要鼠标滑到按钮上,就开始执行动作。
⑥、dragOut在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮区域,会触发本事件一次。
⑦dragOver 在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮,再滑回此按钮。
拖过的效果是在按钮上点击并按住鼠标不放,移出按扭区,再移回按钮上释放的事件。
拖离与拖过有所不同,只要在按钮上按住鼠标左键然后移动到按钮外就会相应。
他于滑离的区别在于拖离需要按住鼠标左键。
⑧keyPress("key") 按下指定的键,会触发本事件一次。
对于此参数的key 部分,需指定键控代码或键常量。
例如:on (dragOut) {//当鼠标拖离按钮时执行下面的动作play();//执行播放动作}再如:on (keyPress "z") {//当按下键盘中的“z”健时执行下面的动作play();//执行播放动作}方法:首先选择需要添加脚本的按钮,在动作面板上加入所需的脚本即可。
关于Flash动作脚本--ActionScript ActionScript即动作脚本,简称AS。
在Flash动画中,使用AS 可以使动画实现交互或完成某些特效。
一、AS要写在什么地方,什么时候AS被触发执行?
1、关键帧:
写在关键帧上面的AS,当时间轴上的指针走到这个关键帧的时候,写在这个帧上面的AS就被触发执行了。
例如要让影片播放完成后停在最后一关键帧,操作方法就是点选最后一帧关键帧,然后打开动作面板,在面板中输入stop()。
2、按钮:
不同于关键帧上面的AS,按钮上面的AS要有触发条件。
要把AS 写在按钮上,操作方法是点选目标按钮,然后打开动作面板。
例如:假设有个按钮,效果是按下按钮后停止播放,那么步骤如下:做一个按钮,放到主场景,点选按钮,然后打开AS面板。
现在如果也在按钮上写:
on(release){
stop();
} //这里要比帧的动画多这些代码: on(release){}
其中release是鼠标的触发事件事件之一,作用是松开按钮,按钮的常用事件:
写在按钮上面的AS的格式:on(事件){要执行的代码} ,即按钮上的3、MC(影片剪辑)
写在影片剪辑上的AS和写在按钮上的大同小异。
操作方法就是点选影片剪辑,然后打开动作面板。
看个例子:
onClipEvent(load){
stop();
}
这里load代表一个事件。
影片剪辑的事件有下面这些:
写在MC上的代码格式: onClipEvent(事件){代码}
二、AS中的对象和方法
虽然AS不是真正的面向对象的编程,但它的概念贯穿整个AS的始终。
1、AS中的对象
新建一个Flash文件,先创建一个命令按钮,然后创建一个影片剪辑,将命令按钮拖到影片剪辑中,命名为“myBtn”。
将影片剪辑拖到主场景中,命名为“myMC”。
现在如何表示主场景、影片剪辑、和按钮呢?方法如下:
_root――主场景(主时间轴)
_root.myMC ――主场景中的剪辑myMC
_root.myMC.myBtn ――主场景的剪辑myMC中的按钮myBtn 这里的_root是Flash的关键字,表示主场景的 Timeline (时间轴)。
2、AS中的方法
当你找到这个对象后,才能对对象进行操作,才能给对象施加方法。
比如要主场景停止播放,就是使用
_root.stop();
主场景中的影片剪辑停止播放,就是
_root.myMC.stop();
3、点语法和路径
点语法:在面向对象编程中,常使用“.”点运算符,点的前后分别代表对象的父、子(上、下级)关系,如前面的_root.myMC.myBtn、_root.myMC等。
路径分两种:绝对路径和相对路径。
上节中的_root.myMC.stop();使主场景中影片剪辑停止播放的例子,还可以这样书写:进入影片剪辑myMC的编辑状态,在时间轴的第一帧写上this.stop();
这里的this也是Flash的关键字, this 指AS所在的这条时间轴。
this 就是相对路径的关键字之一。
另外的一个关键字就是 _parent 。
如果你理解了 this ,那么_parent 并不难理解。
_parent 也就是父级。
myMC的 _parent 就是_root , myBtn的 _parent 也就是myMC。
点的后面的对象的
_parent 就是点前面的对象。
三、部分FLASH函数(方法)
1、时间轴控制
- gotoAndPlay转到指定的帧播放
- gotoAndStop转到指定的帧并停止播放
- nextFrame转到下一帧
- nextScene转到下一场景
- Play 播放
- prevFrame转到上一帧
- prevScene转到上一场景
- Stop 停止
- Stop All Sounds 停止所有声音的播放
2、浏览器/网络
- FSCommand 发送FSCommand命令
- GetURL 跳转至某个超链接
- LoadMovie 装载影片
- loadVariables 从URL中加载变量
- UnloadMovie 卸载影片
3、影片剪辑控制
- duplicateMovieClip 复制影片剪辑
- getProperty 返回指定影片剪辑的属性
- on按钮的事件触发
- onClipEvent 影片剪辑的事件触发
- removeMovieClip删除用duplicateMovieClip创建的影片剪辑- startDrag 在影片剪辑上开始拖放动作
- stopDrag停止正在进行的拖放动作
- targetPath返回指定影片剪辑的目标路径字符串
- updateAfterEvent 在事件后更新舞台
注:有关AS更多的知识请参考Flash帮助系统或相应的参考书。