FLASH8控制语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Action 语句(经典)FLASH8.0 必备
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)做..。

操作符( Operators)
- ! 逻辑非操作
- != 不等于
- "" 字符串
- % 取余数
- && 逻辑与操作
- () 括号
- * 乘号
- + 加号
- ++ 变量自加一
- - 减号
- -- 变量自减一
- / 除号
- < 小于
- <= 小于等于
- <> 不等于
- == 相等
- > 大于
- >= 大于等于
- and 逻辑与
- not 逻辑非
- or 逻辑或者
- typeof 返回变量类型
- void 实体,无返回
- | | 逻辑或者操作
+ Bitwise Operators 位操作符
- & 位与操作
- << 位左移
- >> 位右移
- >>> 位右移(无符号)
- ^ 位异或者操作
- | 位或者操作
- ~ 补位操作
+ Compound Assign Operators 复合操作符
- %= A%=B 等效于A=A%B
- &= A&=B 等效于A=A&B
- *= A*=B 等效于A=A*B
- += A+=B 等效于A=A+B
- -= A-=B 等效于A=A-B
- /= A/=B 等效于A=A/B
- <<= A<<=B 等效于A=A<<B
- >>= A>>=B 等效于A=A>>B
- >>>= A>>>=B 等效于A=A>>>B
- ^= A^=B 等效于A=A^B
- |= A|=B 等效于A=A|B
+ String Operators 字符串操作符(注:实质上是ASCII 的比较)
- add 连接两个字符串
- eq A eq B 字符串A 值与字符串值B 相等
- ge A ge B 字符串A 值大于等于字符串B 值
- gt A gt B 字符串A 值大于字符串B 值
- le A le B 字符串A 值小于等于字符串B 值
- lt A lt B 字符串A 值小于字符串B 值
- ne A ne B 字符串A 值不等于字符串B 值
+ Functions 函数
- Boolean 取表达式的布尔值(True 或者False)
- escape 除去URL 串中的非法字符,将其参数按照URL 编码的格式转化为字符串(String) - eval 访问并计算表达式(expression)的值,并以字符串(String)的形式返回该值
- false 布尔非值(0)
- getProperty 获取属性
- getTimer 获取从电影开始播放到现在的总播放时间(毫秒数)
- getVersion 获取浏览器的FLASHPlayer 的版本号
- globalToLocal 场景(Scene)中的坐标转换成MC 中的坐标
- hitTest 测试一个点或者MC 是否同另一个交叉(即冲突检测)
- int 把十进制数值强制转换成整数
- isFinite 测试数值是否为有限数
- isNaN 测试是否为非数值
- keycode 返回键盘按下键的键盘值(ASCII 值)
- localToGlobal MC 中的坐标转换成场景(Scene)中的坐标
- maxscroll 文本框的最大行度
- newline 换行符
- Number 将参数转换成数值其返回值有以下四种情况:
如果x 为一数字,则返回值即为该数字;如果x 为一布尔数,则返回0或者1;如果x 为一字符串,则函数将x 解释为一个指数形式的十进制数;如果x 未定义,则返回0。

- parseFloat 将字符串转换成浮点数
- parseInt 将字符串转换成整数
- random 产生0 到指定数间的随机数
- scroll 文本框中的起始滚动行
- String 将参数转换成字符串
- targetPath 返回指定实例MC 的路径字符串
- true 布尔是值(1)
- unescape 保留字符串中的%XX 格式的十六进制字符
+ String Functions 字符串函数
- chr 将ASCII 码转换成相应字符
- length 返回字符串的长度
- mbchr 将ASCII/S-JIS 编码转换成相应的多字节字符
- mblength 返回多字节字符串的长度
- mbord 将多字节字符转换成相应的ASCII/S-JIS 编码
- mbsubstring 截取多字节字符串中的字串
- ord 将字符转换成ASCII 码
- substring 截取字符串中的子串
+ Properties 属性
- _alpha Alpha 值(透明度值)
- _currentframe 在MC 中的当前帧数
- _droptarget 当使用Start drag 拖动一个MC 时,实时地返回该MC 的绝对路径
- _focusrect 高亮按钮或者某个当前区域的显示与否(True 显示/Flase 不显示)
- _framesloaded 已载入的影帧数
- _height MC 的高度
- _highquality 画质的高低(True 高画质/False 低画质)
- _name MC 的实例名
- _quality 当前画质(字符串值) LOW,MEDIUM,HIGH,BEST
- _rotation MC 旋转的角度(单位:度)
- _soundbuftime 声音的缓冲区大小(默认值5,单位:秒)
- _target MC 的路径
- _totalframes 总帧数
- _url 电影被调用的URL 地址
- _visible 是否可视(T
rue 可视/False 不可视)
- _width MC 的宽度
- _x MC 的x 坐标
- _xmouse 鼠标的x 坐标
- _xscale MC 的X 轴向缩放度
- _y MC 的y 坐标
- _ymouse 鼠标的y 坐标
- _yscale MC 的y 轴向缩放度
+ Objects 对象
+ Array 数组
- concat 合并多个数组
- join 将一个数组中的元素转化成字符串,并通过特定的分割符进行联结,并返回结果字符串
- length 返回数组长度
- new Array 新建数组对象
- pop 出栈(FILO 先入后出)
- push 入栈(入队列)
- reverse 反相(颠倒数组,及第一个元素和最后一个元素互换……)
- shift 出队列(FIFO 先入先出)
- slice 截取数组中的子串生成新的数组
- sort 数组元素的排序
- splice 从数组中指定元素起删除指定个数的元素或者删除指定元素
- unshift 从数组头部插入一个元素
+ Boolean 布尔对象
- new Boolean 新建布尔型对象
- toString 将布尔型对象的值转换成字符串值
- valueOf 获取布尔型对象的值(返回值为布尔型)
+ Color 颜色对象
- getRGB 获取颜色值的RGB 分量(返回值0xRRGGBB 十六进制)
- getTransform 获取颜色值的转换量(返回值cxform 型) [不太清晰]
- new Color 新建一颜色对象
- setRGB 设臵颜色值的RGB 分量(参数为0xRRGGBB 十六进制)
- setTransform 设臵颜色值的转换量(参数为cxform 型) [不太清晰]
+ Date 时间和日期对象
- getDate 获取当前日期(本月的几号)
- getDay 获取今天是星期几(0-Sunday,1-Monday...)
- getFullYear 获取当前年份(四位数字)
- getHours 获取当前小时数(24 小时制,0-23)
- getMilliseconds 获取当前毫秒数
- getMinutes 获取当前分钟数
- getMonth 获取当前月份(注意从0 开始:0-Jan,1-Feb...)
- getSeconds 获取当前秒数
- getTime 获取UTC 格式的从1970.1.1 0:00 以来的秒数
- getTimezoneOffset 获取当前时间和UTC 格式的偏移值(以分钟为单位)
- getUTCDate 获取UTC 格式的当前日期(本月的几号)
- getUTCDay 获取UTC 格式的今天是星期几(0-Sunday,1-Monday...)
- getUTCFullYear 获取UTC 格式的当前年份(四位数字)
- getUTCHours 获取UTC 格式的当前小时数(24 小时制,0-23)
- getUTCMilliseconds 获取UTC 格式的当前毫秒数
- getUTCMinutes 获取UTC 格式的当前分钟数
- getUTCMonth 获取UTC 格式的当前月份(注意从0 开始:0-Jan,1-Feb...) - getUTCSeconds 获取UTC 格式的当前秒数
- getYear 获取当前缩写年份(当前年份减去1900)
- new Date 新建日期时间对象
- setDate 设臵当前日期(本月的几号)
- setFullYear 设臵当前年份(四位数字)
- setHours 设臵当前小时数(24 小时制,0-23)
- setMilliseconds 设臵当前毫秒数
- setMinutes 设臵当前分钟数
- setMonth 设臵当前月份(注意从0 开始:0-Jan,1-Feb...)
- setSeconds 设臵当前秒数
- setTime 设臵UTC 格式的从1970.1.1 0:00 以来的秒数
- setUTCDate 设臵UTC 格式的当前日期(本月的几号)
- setUTCFullYear 设臵UTC 格式的当前年份(四位数字)
- setUTCHours 设臵UTC 格式的当前小时数(24 小时制,0-23)
- setUTCMilliseconds 设臵UTC 格式的当前毫秒数
- setUTCMinutes 设臵UTC 格式的当前分钟数
- setUTCMonth 设臵UTC 格式的当前月份(注意从0 开始:0-Jan,1-Feb...) - setUTCSeconds 设臵UTC 格式的当前秒数
- setYear 设臵当前缩写年份(当前年份减去1900)
- toString 将日期时间值转换成"日期/时间"形式的字符串值
- UTC 返回指定的UTC 格式日期时间的固定时间值
+ Key 键盘对象
- BACKSPACE Backspace(<-)键
- CAPSLOCK CapsLock 键
- CONTROL Ctrl 键
- DELETEKEY Delete(Del)键
- DOWN 方向下键
- END End 键
- ENTER Enter(回车)键
- ESCAPE Esc 键
- getAscii 获取最后一个按下或者松开的键的对应字符的Ascii 码
- getCode 获取最后一个被按下的键的键盘扫描码
- HOME Home 键
- INSERT Insert(Ins)键
- isDown 当指定键被按下时返回True 值
- isToggled 当Caps lock 或者Num Lock 键被锁定时返回真(True)
- LEFT 方向左键
- PGDN PageDown(PGDN)键
- PGUP PageUp(PGUP)键
- RIGHT 方向右键
- SHIFT Shift 键
- SPACE 空格键
- TAB Tab 键
- UP 方向上键
+ Math 数学函数对象
- abs abs(n) 取n 的绝对值
- acos acos(n) n 的反余弦(返回值单位:弧度)
- asin asin(n) n 的反正弦(返回值单位:弧度)
- atan atan(n) n 的反正切(返回值单位:弧度)
- atan2 atan2(x,y) 计算x/y 的反正切
- ceil ceil(n) 取挨近n 的上限的整数(向上取整)
- cos cos(n) 取n 的余弦(n 的单位:弧度)
- E Euler(欧拉)指数(约为2.718)
- exp 指数
- floor floor(n) 取挨近n 的下限的整数(向下取整)
- LN10 ln10(约等于2.302)
- LN2 ln2(约等于0.693)
- log 取自然对数(e 为底)
- LOG10E 10 为底取E 的对数(约等于0.434)
- LOG2E 2 为底取E 的对数(约等于1.443)
- max 返回两参数中的最大值
- min 返回两参数中的最小值
- PI 圆周率(约等于3. 14159)
- pow pow(x,y) x 的y 次方
- random 产生0- 1 间的随机数
- round 四舍五入取整
- sin sin(n) 取n 的正弦(n 的单位:弧度)
- sqrt 开根号
- SQRT1_2 0.5 开根号(约等于0.707)
- SQRT2 2 开根号(约等于1.414)
- tan tan(n) 取n 的正切(n 的单位:弧度)
+ MovieClip 影片夹子对象
- attachMovie 产生一个库中MC 的实体并将它绑定到某个电影上- dupicateMovieClip 复制当前MC 产生新的MC
- getURL 使浏览器浏览指定页面
- gotoAndPlay 跳转到指定帧并播放
- gotoAndStop 跳转到指定帧并住手播放
- loadMovie 引入一个外部电影到指定层
- loadVariables 引入外部文件中的变量值
- nextFrame 下一帧
- play 播放
- prevFrame 前一帧
- removeMovieClip 删除用duplicateMovieClip 创建的MC
- startDrag 开始拖动MC
- stop 住手MC 的播放
- stopDrag 住手拖动MC
- unloadMovie 卸载由loadMovie 引入的Movie
+ Mouse 鼠标对象
- hide 隐藏鼠标指针
- show 显示鼠标指针
+ Number 数值对象
- MAX_value FLASH5
所允许的最大数值1.79769313486231 e 308
- MIN_value FLASH5 所允许的最小数值5 e -324
- NaN 是否为非数值(Not a Number)
- NEGATIVE_INFINITY 是否为负数
- new Number 新建数值对象
- POSITIVE_INFINITY 是否为正数
- toString 将数值转换成字符串
+ Object 对象
- new Object 新建对象
- toString 转换对象为字符串
- valueOf 返回对象的值
+ Selection 选择区对象
- getBeginIndex 获取可编辑文本区的起始位臵,- 1 表示无可编辑文本区- getCaretIndex 获取当前的编辑位臵,- 1 表示没有可编辑文本区
- getEndIndex 获取可编辑文本区的结束位臵,- 1 表示无可编辑文本区
- getFocus 获取当前的激活文本区的文本变量名
- setFocus 设臵当前的激活文本区
- setSelection 设臵可编辑文本的起始位臵和终止位臵
+ Sound 声音对象
- attachSound 绑定库中的一个声音
- getPan 获取声音的混音值[不太清晰]
- getTransform 获取当前声音的变换量(返回值类型:sxform) [不太清晰] - getVolume 获取当前声音的音量(百分比)
- new Sound 新建声音对象
- setPan 设臵声音的混音值[不太清晰]
- setTransform 设臵当前声音的变换量(参数类型:sxform) [不太清晰] - setVloume 设臵当前声音的音量(百分比)
- start 开始播放当前声音
- stop 住手播放当前声音
+ String 字符串对象
- charAt 在指定的索引表中返回一个字符
- charCodeAt 在指定的索引表中返回一个字符的代码
- concat 联结合并多个字符串
- fromCharCode 从字符代码组构造出一个新的字符串
- indexOf 在字符串中寻觅子串,返回子串起始位臵或者- 1(- 1 表示未找到)
- lastIndexOf 在字符串中寻觅子串,返回子串终止位臵或者- 1(- 1 表示未找到)
- length 返回字符串的长度
- new String 新建字符串对象
- slice 返回字符串中指定截取的子串
- split 根据限定符将字符串转换成一个数组
- substr substr( start, length ) 返回从start 开始,共length 长的子串
- substring substring( indexA, indexB ) 返回indexA..indexB 之间的子串
- toLowerCase 将字符串中的大写字符全部转换成小写
- toUpperCase 将字符串中的小写字符全部转换成大写
+ XML 可扩充性标记语言对象
- appendChild 添加一个子结点到指定的XML 元素
- attributes XML 元素的属性数组
- childNodes 一个XML 元素的子结点数组
- cloneNode 克隆(复制)当前结点
- createElement 新建一个新的XML 元素
- createTextNode 新建一个新的XML 文本结点
- firstChild 返回当前XML 结点的第一个子结点
- hasChildNodes 当前XML 结点是否有子结点(返回true 有子结点/flash 则无)
- insertBefore 在一个指定的XML 元素的子结点前插入一个新的子结点
- lastChild 返回当前XML 结点的最后一个子结点
- load 从指定的URL 把XML 元素引入FLASH 中
- loaded 当XML 元素引入或者是发送同时引入FLASH 中后,返回true 值
- new XML 新建一个XML 对象
- nextSibling 当前XML 结点的下一个结点
- nodeName 返回当前XML 结点的名字
- nodeType 返回当前XML 结点的类型(1-元素,3-文本)
- nodevalue 返回当前XML 结点的值(text 型返回文本)
- onLoad 当引入或者发送同时引入时触发事件
- parentNode 返回当前XML 结点的父结点
- parseXML 将XML 字符串转换成XML 对象
- previousSibling 当前XML 结点的前一个结点
- removeNode 从XML 文本中删除结点
- send 从FLASH 中把一个XML 元素发送到指定的URL 地址
- sendAndLoad 从FLASH 中把一个XML 元素发送到指定的URL 地址同时引入XML 结果- toString 把XML 对象转换为XML 字符串表达
+ XMLSocket XML 套接口
- close 关闭一个XML 套接口
- connect 连接一个XML 套接口,指定URL,并定义其端口号
- new XMLSocket 建立一个新的XML 套接口
- onClose 关闭XML 套接口时触发事件
- onConnect 连接XML 套接口时触发事件
- onXML 从服务器上获取XML 时触发事件
- send 发送XML 给服务器
接下来,介绍几个类型的语法。

1、几个常用的控制场景的方法,如
play(); //让时间轴的指针播放
stop(); //住手时间轴的指针在程序触发时候的那个帧
gotoAndPlay(); //让指针跳转到某个帧,然后继续播放
gotoAndStop(); //让指针跳转到某个帧,住手在那个帧
nextFrame(); //往下走一帧
prevFrame(); //往前走一帧
上面的都是方法。

方法?解:打个比方,我们管吃饭叫作一种方法,用来解决肚子饿这个问题。

我们管stop() 叫做一种方法,用来解决时间轴指针停下来的问题。

我们管上面的几个东西叫方法,用来解决时间轴指针运动的问题。

2、控制属性的语法。

有不少,我列几个
_x
_y
_alpha
_width
_name
.....等等属性
上面的都是属性
属性?解:打个比方。

我们管你的身高叫做属性,用来标识你的高度。

我们管你的体重叫属性,用来标识你的质量。

我们管_x 叫属性,用来标识目标的X 轴坐标。

我们管_alpha 叫属性,用来标识目标的透明度.......我真罗嗦啊,唉。

3、控制语句流程的语法,如
if (条件){
//条件满足执行这里的代码
}else{
//条件不满足执行这里的代码
}
for(i=0;i<N;i++){
//执行这里的代码N 次
}
while(条件){
//当条件满足时向来执行这里的代码
}
等等。

这些都是基本的语法,也是AS 的基础。

4 、其他方法和自己定义的方法。

这里我不能把所有的语法都一一列出来介绍,因为实在是太多了,具体可以参考Flash 自带的匡助手册。

我们只能在以后的应用中慢慢熟悉。

这里,你有个基本概念就行了。

到后面我会给每句话都加之注释。

回顾一下,今次要大家记住的东西:
AS 语法的大小写是敏感的。

方法的概念。

属性的概念。

[转帖]AS 基础精典教程
作者和出处俱不详,版权归原作者所有
次给大家带来MOOCK 在世界性FLASH 大会:FF2K1 大会上的演说,要说到Action 的权威,固然要数MOOCK,他写的ASDG (一本书)是可以和FLASH 自带的AS 字典相提并论的宝贝。

虽然他是这样一个高高手,但是他的这个演讲却是非常的浅显,如果你某处读起来觉得难,那也一定是chocobo 翻译得不好。

(有些地方实在是太浅,我受不了就改了 ) 这篇文章预算的演讲时间很长,所以读起来也会觉得较长,你可以分开来读。

还有,本文是关于FLASH5 的AS 的,毕竟FLASH4 的AS 已经淘汰。

第一章:由O 开始
为了示范,MOOCK 将会做一个多选题问答的动画来做为例子。

这个例子以4 种不同版本的方法来实现。

对于用户来说,4 种版本使用起来将没有区别,只是对于我们开辟者来说,研究的就是如何改进这些FLASH 代码的结构与组织。

改进的重点在于:
*更便易的维护
*更便易的扩展
*更快捷的建设
要牢记的是,学习编程是一个过程(process)而不是一个事件(event)。

如果你第一次学习到的时候不能照着完成也不必耽心。

接下来,MOOCK 说到为了照应没有多少编程经验的菜鸟,会由最最最简单的开始。

关于计算机语言:
编程语言是用来发信息给电脑,从电脑接受信息的
编程语言也有词汇表和文法,如人类的语言类似
通过编程语言我们可以告诉电脑去做什么,也可以从他那获得信息
关于语法和逻辑
学习编程的思想比学习一种语言的语法重要
假设FLASH 是懂我们语言的单词的,我们对FLASH 说:“Flash, 让一个球在屏幕里面弹来弹去吧”
FLASH 会什么都做不了,FLASH 要我们用他的世界懂的东西,例如:movie clips, buttons, frames,来描述它要做的事
那我们再说一次:“Flash, 让一个名字叫ball_one 的movie clip 在屏幕里面弹来弹去吧”
我们已经用MC 这个FLASH 懂的东西来描述了,但FLASH 还是什么都不做,因为它需要更多的信息:
*这个球有多大
*它放在哪里?
*一开始它首先往哪个方向运动?
*它初始的速度是多少
*它在屏幕的那一个范围之内弹来弹去呢?
*弹来弹去要持续多久呢?
看来我们需要有逻辑结构地告诉FLASH 它应该怎么去做
1、一个球指的是一个叫ball_one 的圆形MC,直径50 像素
flahs as 无基础入门经典教程
做过Flash 动画的Flash 爱好者们都知道,要做好一个Flash 动画,AS 是必不可少的,即使只是很简单的几句代码也能起到整个Flash 画龙点睛的作用。

这里我只简单的介绍一下AS 的基本常识。

首先我们要了解AS 要写在什么地方,什么时候AS 会被触发执行。

1 、帧:
写在关键帧上面的AS,当时间轴上的指针走到这个关键帧的时候,就写在这个帧上面的AS 就被触发执行了。

常见的例子有在影片结尾的帧写上stop() 等。

操作方法就是点选关键帧,然后打开AS 面板。

2、按钮:
不同于帧上面的AS,按钮上面的AS 是要有触发条件的。

要把AS 写在按钮上,操作方法是点选目标按钮,然后打开AS 面板。

举个例子能说的更明白。

假设有一个动画,要让它在播放完同时住手,那末,你要做的就是在这个动画的最后一帧写AS
stop();
再假设有个按钮,效果是按下按钮后住手播放,那末步骤如下。

做一个按钮,放到主场景,点选按钮,然后打开AS 面板。

现在如果也在按钮上写
stop();
那末,输出的时候就会提示错误。

正确的应该这样写
on(release){
stop();
}
这里要比帧的动画多这些代码:on(release){} , 整个代码翻译过来就是:
当(松开){
住手
}
红色的代码表示鼠标的触发事件事件之一,这里用的是release 松开,按钮的常用事件: release 松开
releaseOutside 在按钮外面松开
press 按下
rollOver 鼠标进入按钮的感应区
rollOut 鼠标离开按钮的感应区
现在很明确了:写在按钮上面的AS 一定就是这种格式的:
on(事件){要执行的代码}
3 、MC(电影剪辑)
如果你看懂了上面的内容,那末写在MC 上面的AS 和写在按钮上的大同小异。

操作方法就是点选MC,然后打开AS 面板。

看个例子
onClipEvent(load){
stop();
}
同样,MC 需要一个事件来触发AS 的执行。

翻译这段代码就是
当剪辑(载入){
住手
}
红色代码同样表示一个事件。

MC 的事件有下面这些:
load 载入, 当MC 浮现的时候执行。

也就是除非卸载这个MC,否则load 事件内的代码只执行一次
unload 卸载,当MC 卸载的时候执行
enterFrame 存在的每一个帧。

在MC 存在的每一个帧都要执行一次代码。

如果你的场景有100 个帧,有个MC 从41 帧开始浮现到100 帧才消失,那末这个MC 上面的代码执行了60 次mouseDown 按下鼠标,在场景内任何地方都算。

和按钮不一样的地方
mouseMove 挪移鼠标,只要挪移鼠标就执行代码
mouseUp 松开鼠标
同样你要明确:写在MC 上的代码一定总是这种格式:
onClipEvent(事件){代码}
看到这里,如果你明白的写在帧、按钮、MC 上的代码有什么不一样,任务就算完成为
了AS 对象篇
重点:点语法学会表达对象
学会用绝对路径和相对路径表达对象
虽然AS 不是真正的面向对象的编程,但是它也有对象的概念。

这个概念贯通整个AS 的始终,所以,对对象的理解,比对语法或者其他的理解更为重要。

现在开始吧:
首先,我们来了解一下路径,路径分两种:绝对路径和相对路径。

做过html 的朋友应该知道这个概念。

但这里我还是要详细解释一下,我认为对路径的理解要深入,我初学的时候就是磕在路径上。

在讲路径之前,有必要先讲一下.语法: 举例说明,这里要表示房间里的桌子上的一本书,用.语法这么表示:
房间.桌子.书
如果要再细到书上的页上面的字,很显然
房间.桌子.书. 页面.字
看明白了吧?我也不懂得怎么说,.语法就是这样表示对象的,点的前面是其后面的父级。

如房间是桌子的父级,桌子的子级就是书。

还是不明白?这样吧,你把. 里写成“里面的”就可以了,这样就是
房间(里面的)桌子(里面的)书(里面的)页面(里面的)字
这样容易多了吧?
现在我开始说路径了,其中也要夹杂的对象的说明,看:
从例子入手。

新建一个Flash 文件,然后创建一个MovieClip,MC 命名为“MC”,放在主场景里面,然后再创建一个按钮,放在“MC”里面,然后从库里面拖一个出来放在主场景,分别给这两个元素实例命名(Instance Name , 注意是实例名不是MC 的名字) :MC->myMC button->myBtn
现在我们假设主场景是房子,MC 是桌子,按钮是书,那末分别怎么表达房子,桌子,书呢?如下
_root 房子
_root.myMc 房子.桌子
_root.myMc.myBtn 房子.桌子.书
这里的_root 是Flash 的关键字,表示主场景的Timeline (时间线)。

很容易理解对不。

这里的房子,桌子,书都是我们要理解的“对象”。

当你找到这个对象后,才干对对象进行操作,才干给对象施加方法。

比如,我现在要打扫房子,打扫是方法,但对象是房子,表达式是这样:
房子.打扫()
如果你不能正确的表达房子这个对象,你的打扫也就不能正确的实施了。

*说明:这里为什么要在打扫后面加()呢?因为打扫是方法不是对象,为了让Flash 知道这是个方法,我们必须加之(),要不然它会以为房子里面有“打扫”这个东西。

现在,我们可以很容易的对房间里面的各个东西进行操作,如
房子.打扫();
房子.木桌子.整理();
房子.玻璃桌子.打碎();
房子.书桌.书.看();
等等,相信你把它们"翻译"成AS 代码没什么问题吧比如要主场景住手播放,就是
_root.stop();
要MC 住手播放,就是
_root.myMc.stop();
现在说说相对路径。

还是上面的例子。

假如给你下了一个命令:修理房子里面的红色的椅子。

那末怎么表达呢?就是:
房子.红色椅子.修理()
无论给你下命令的人在哪里告诉你的,你都会知道要修理的椅子是哪一张。

但是他如果这么说:修理你现在坐的这张椅子。

红色的?还是蓝色的?这就要取决于你坐在哪个椅子上了。

那末相对的表达式就是
我坐的椅子.修理();
这里为什么不这么写呢:
房子.我坐的椅子.修理()
这么写是错的,因为我坐的椅子是不固定的,我说不定把椅子搬到房子外面去坐,那这个表
达式就错了,因为椅子根本就不在房子里面。

换过来用Flash 实例说明。

现在我想让主场景下的myMC 在一开始就不要播放,而是先停止。

那末你有什么办法呢?
我你猜想到的办法可能就是在主场景放入这个MC 的那个帧写上:
_root.myMc.stop();
这个是对的。

但是一旦myMc 的名字一变,你就得跟着改这句话了。

有没有办法不管这个“MC”的实例名不管怎么改,都会被我们同样一句的AS 找到?固然可以,前提是你的AS 必须“坐在这个MC 上”。

进入Mc 的编辑状态,在Mc 的Timeline 的第一帧写上
this.stop();
这里的this 也是Flash 的关键字,这个this 指AS 所在的这条Timeline .
现在不管你这个MC 放在哪里,命名是什么,我都不管,反正肯定会停下来。

为什么,因为AS 正“坐在MC 上”。

如果你在这里写上
_root.stop();
那就错了。

为什么?子细想想。

这个this 就是相对路径的关键字之一。

你必须要子细理解它。

此外的一个关键字就是_parent 。

如果你理解了this ,那末_parent 并不难理解。

举例:还是哪个假设房子(_root) , 桌子( mc_zhuozi ) , 书(mc_shu) 他们的关系是(括号内为mc 实例名)
房子.桌子.书
_root.mc_zhuozi.mc_shu
在mc_zhuozi 的timeline 里面写
_parent.打扫();
意思就是打扫房间;
在mc_shu 的timeline 里面写
_parent.打扫();
意思就是打扫桌子。

_parent 也就是父级。

桌子的_parent 就是房子的timeline , 书的_parent 也就是桌子的timeline。

点的后面的对象的_parent 就是点前面的对象。

AS 语法篇
首先要让大家明白的是:AS 语法的大小写是敏感的。

如:gotoAndPlay() 正确gotoAndplay() 错误。

关键字的拼写必须和语法一致,要做到很容易,因为在Flash 的AS 面板里面,关键字会有不一样的颜色显示。

不少Flash 小鸟们也许要开始埋怨,记不住咋办?我这里有个办法,就是背。

不要流下委屈的泪水,俺们都是这么走过来的。

多用两次你就记住了。

这里说一下,我们要从开始就养成编程的好习惯,如在每一个语句后面都加之分号,有可能的话,尽量给复杂的语句加之注释。

注释的例子
//这个是注释,但是只能有一行
/* 这个也是注释,可以写不少行*/
接下来,介绍几个类型的语法。

1、几个常用的控制场景的方法,如
play(); //让时间轴的指针播放
stop(); //住手时间轴的指针在程序触发时候的那个帧
gotoAndPlay(); //让指针跳转到某个帧,然后继续播放
gotoAndStop(); //让指针跳转到某个帧,住手在那个帧
nextFrame(); //往下走一帧
prevFrame(); //往前走一帧
上面的都是方法。

方法?解:打个比方,我们管吃饭叫作一种方法,用来解决肚子饿这个问题。

我们管stop() 叫做一种方法,用来解决时间轴指针停下来的问题。

我们管上面的几个东西叫方法,用来解决时间轴指针运动的问题。

2、控制属性的语法。

有不少,我列几个
_x
_y
_alpha
_width
_name。

相关文档
最新文档