FLASH动作脚本基本知识第一讲动作脚本基本知识一、动作脚本概念动作脚本就是Flash MX 为我们提供的各种命令,运算符以及对象,使用动作脚本时必须将其附加在按钮、影片剪辑或者帧上,从而使单击按钮和按下键盘键之类的事件时触发这些脚本。
以便实现所需的交互性。
学习动作脚本的最佳方法是对其进行实际操作,即使对动作脚本没有完全理解,也不影响对其控制功能的使用,一样能够实现简单的交互性操作,经过一段时间的实践对基本的动作(如play 和stop)运用自如,对动作脚本略知一二后,就可以开始学习关于此语言的更多知识了。
二、动作脚本面板当我们为帧,按钮或影片剪辑指定动作时必须使用动作面板,动作面板的结构如示例1.1三、基本动作控制命令1 停止命令格式; stop();说明动作;停止播放头的移动2 播放命令格式;play();说明动作;在时间轴中向前移动播放头。
3 转移命令gotoAndPlay(scene, frame)参数scene 播放头将转到的场景的名称。
frame 播放头将转到的帧的编号或标签。
动作;将播放头转到场景中指定的帧并从该帧开始播放。
如果未指定场景,则播放头将转到当前场景中的指定帧。
以上三个命令是动作脚本中最常用的基本动作,它们通过对时间轴上播放头的控制实现的特定功能,在对播放头实施控制时一般有多种方法可供选择,但最常用的是在坐标系内部实施控制和在不同坐标系之间实施控制,前者直接使用命令就可以实现目的(见示例1.2和示例1.3),后者则必须使用目标路径才能实现控制功能(见示例1.4和示例1.5)四按钮使用按钮元件可以在影片中创建响应鼠标点击、滑过或其它动作的交互式按钮。
可以定义与各种按钮状态关联的图形,然后指定按钮实例的动作。
请参阅为按钮指定动作。
在单击或滑过按钮时要让影片执行某个动作。
您必须将动作指定给按钮的一个实例;该元件的其它实例不受影响。
当为按钮指定动作时,必须将动作嵌套在on 处理函数中,并指定触发该动作的鼠标或键盘事件。
当在标准模式下为按钮指定动作时,会自动插入on 处理函数,然后您可从列表中选择一个事件。
您也可用动作脚本Button 对象的事件在发生按钮事件时执行脚本。
************************************************注释1:命令中的圆括号(1) 圆括号一般用来放置函数的参数以便传递这些参数,我们所学习的各种命令,也都可以称为函数.例如gotoandplay(2);数字"2"只有放在圆括号内,才能进行传递(2)表示运算符优先级当在同一语句中使用两个或多个运算符时,一些运算符会优先于其它的运算符。
动作脚本按照一个精确的层次来确定首先执行那个运算符。
例如,乘法总是先于加法执行;但是,括号中的项目会优先于乘法。
因此,如果没有括号,动作脚本会在下面的示例中首先执行乘法:to = 2 + 4 * 3;结果为14。
但是当加法运算在括号内时,动作脚本会首先执行加法:total = (2 + 4) * 3;结果为18。
(3) 简化语句例如使用括号评估点语法中点左侧的表达式。
例如,在下面的语句中,括号会使new Color(this) 评估并创建一个新的Color 对象:onClipEvent(enterFrame) {(new Color(this)).setRGB(0xffffff);}如果不使用括号,则需要添加一个语句来评估该表达式:onClipEvent(enterFrame) {myColor = new Color(this);myColor.setRGB(0xffffff);}注释2 分号" ; "动作脚本语句是用分号结束的。
例如,下面的语句是用分号结束的:_root.getDay();如果省略了结束分号,Flash 仍然能够成功地编译脚本。
但是,使用分号是一个很好的脚本撰写习惯。
******************************************************小节本章重点:是学会如何使用基本命令和按钮控制影片剪辑1命令可以写在时间轴上2命令可以附加在按钮上3按钮有一些on事件关于动作面板和目标路径大家可以稍作了解,以后我们会在实例中经常讲第二讲数据一数据我们思考一下计算机程序所作的一些事情,财务管理程序能够打印帐单,字处理程序能够输入和编辑文本,视频处理程序能够让我们观看影片和玩各种游戏,等等数不胜数,但所有程序都有一个共同特点;他们都需要处理数据.flash中根据数据的处理方法的不同,对数据进行了分类,他们是;数值类型,字符串类型,布尔类型,对象类型,影片剪辑类型,未定义类型共六种.计算机在处理这些数据的时候,必需使用某种方法存储这些数据,变量就是服务于该目的,所以我们常说"变量是保存信息的容器",下面我们先看看几个最常用的数据1 number (数值)类型数值型数据指的是我们常用的数字。
可以使用算术运算符加(+)、减(-)、乘(*)、除(/)、求模(%)、递增(++) 和递减(--) 来处理。
也可使用内置的Math 对象的方法处理数字.使用Number()可以指定数据为数值类型.Number();又叫数值转换函数.Number(...);圆括号中放入要转换为数字的表达式示例2.11a=2;b=10;trace(a-b);trace(math.abs(a-b));c=Number(a)+Number(b);//指定a,b为数值型数据,然后求和2 string(字符串)类型字符串是诸如字母、数字和标点符号等字符的序列。
将字符串放在双引号之间,可以在动作脚本语句中输入它们。
字符串被当做字符,而不是变量进行处理。
使用String()可以指定数据为字符串类型也可以将数值类型的数据转换为字符串型数据.String();又叫字符串转换函数.String(...);圆括号内为要转换为字符串的表达式。
如; c=String(a)+String(b); //指定a,b为字符串型数据.然后将a,b连接起来例如,在下面的语句中,"L7" 是一个字符串:a1 = "L7";可以使用加法(+) 运算符连接或合并两个字符串。
例如a1="mc"+"2";trace(a1);虽然动作脚本在引用变量、实例名称和帧标签时不区分大小写,但是文本字符串是区分大小写的。
例如,下面的两个语句会在指定的文本字段变量中放置不同的文本,这是因为"Hell o" 和"HELLO" 是文本字符串。
invoice.display = "Hello";invoice.display = "HELLO";要在字符串中包含引号,可以在它前面放置一个反斜杠字符(\)。
要换行时加入一个(\n)就可以了,这称为字符转义。
示例2.12换行和插入""号on (release) {dd = "中国老三届是我flash入门的地方,\n我的第一个作业是\"运动的光碟\".";trace(dd);}3 boolean(布尔)类型布尔值是true 或false 。
动作脚本也会在需要时将值true 和false 转换为 1 和0。
布尔值在进行比较以控制脚本流的动作脚本语句中经常与逻辑运算符一起使用。
例如,在下面m c中的脚本中,如果变量a 为true,变量b也为true则会播放影片mc:onClipEvent(enterFrame) {if (b == true && a== true){play();}}实例制作--数据观察制作步骤1 选择文本工具在属性栏选输入文本,字号20,颜色黑,在场景中点击构造一个输入文本框,同样的方法再构造一个文本框,并分别在属性面板的变量栏把变量命名为a和b2选择文本工具在属性栏选动态文本,字号,颜色同上,在场景中点击构造一个动态文本框,在属性面板的变量栏把变量命名为为c,3选择文本工具在属性栏选静态文本,在场景中制作"+"和"=",放在两个输入文本之间,其后面放"="号,在"="后放动态文本框,4在公用库中拖出一个按钮,把它一个放在动态文本后面5在第二帧插入一个关键帧,6点击第一帧,又点击放在动态文本后面的按钮,打开动作面板输入一下脚本on (release) { //按下并释放;c=Number(a)+Number(b); //指定a,b为数值类型的数据,执行加运算后存入c中;}7点击第二帧,又点击放在动态文本后面的按钮,打开动作面板输入一下脚本on (release) { //按下并释放;c = String(a)+String(b); //指定a,b为字符串类型的数据,执行加运算后存入c中;}8新建图层2从库中把按钮拖出两次,旁边分别标注数值型和文本型点击选中数值型按钮写on (release) {gotoAndStop(1);}点击选中文本型按钮写on (release) {gotoAndStop(2);}至此实例完成.通过本实例我们学会1用动态文本显示数据,用输入文本输入数据2如何指定数据类型3字符串数据加法运算是把数据进行连接,数值类型是求和4复习按钮的goto命令第三讲关键字和变量一标识符flash中标识符是用于表示变量、属性、对象、函数或方法的名称。
它的第一个字符必须是字母、下划线(_) 或美元记号($)。
其后的字符必须是字母、数字、下划线或美元记号。
例如,firstName 是一个变量的名称。
二关键字关键字是有特殊含义的保留字。
例如,var 是用于声明本地变量的关键字。
不能使用关键字作为标识符。
例如,var 不是合法的变量名。
flash中定义了一些保留关键字,所谓保留关键字就是flash系统已经严格定义了的一类标识符,它们具有固定的含义,不允许再定义或另作它用.flash中的关键字一共有32个,下表列出了所有动作脚本关键字.breakcaseclasscontinuedefaultdeletedynamicelseextendsforfunctiongetifimplementsimportininstanceofinterfaceintrinsicnewprivatepublicreturnsetstaticswitchthistypeofvarvoidwhilewith下面我们先学习两个个关键字if和else1 关键字if和elseif是用来对条件进行计算并判断其真假的一个关键字,使用if构成所谓的条件语句,它的应用格式为;if(...) {mmm}else{}说明圆括号中放入条件,这个条件的计算结果为true 时就执行大括号中的命令mmm。