当前位置:文档之家› FLASH actionScript脚本语言详解

FLASH actionScript脚本语言详解

FLASH actionScript脚本语言详解2009年11月05日 星期四 22:08FLASH脚本语言详解
- 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<- >>= 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,MEDIU

M,HIGH,BEST
- _rotation MC旋转的角度(单位:度)
- _soundbuftime 声音的缓冲区大小(默认值5,单位:秒)
- _target MC的路径
- _totalframes 总帧数
- _url 电影被调用的URL地址
- _visible 是否可视(True可视/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给服务器


Flash入门及学ActionScript编程的正确途径


Flash入门途径

下面我的说每一个问,请你都不要跳过,不管您用什么手段,必须一个个吃透,否则欲速则不达。

1、三种图层

图层:和Photoshop的图层差不多。

导向层:不仅可以导向Motion动画,还有参考层的作用(这个功能用的人就不多了)。

蒙板层:蒙板层有图像的地方,它下面那层的内容才可显示,有点象3DS MAX里的蒙板贴图。

2、三种帧:即帧,关键帧,空白关键帧。

3、三种符号:即影片剪缉,按钮,图形,初学可以不用图形,用影片剪缉。

4、三种Flash动画的文件格式:即EXE,SWF,HQX

5、三种Flash常用的声音:MP3,AVI,WAV

6、三种影片生成方式;输出动画,发布影片,CTRL+ENTER

7、三个重要数字:帧率,影片尺寸,背景色值。

6、三个Flash常用图片格式:jpg ,png,gif

7、三个重要快捷键:F8_转换为符号 Tab_显示/隐藏面板 Ctrl_+/-缩放。

学AS编程的正确途径

1、你先学会加动作的三种方式:在帧上加,在MC上加,在按钮上加。用play stop goto这三个命令反复练习。不要用太多的命令给自己吃迷晕药。用实例练,不要空练。

2、会了我说的1后,要

学给按钮加动作的8种方法和给mc加的9种方法。

3、会了我说的2了,就要学个编程最基础最重要的东西----路径的描述(能看懂就能用)。

1> _root.mc1.mc2. ... mcn.play()[或stop(), _x, .......]
2>_parnet
3>this
4>mc1.mc2. ...
5>_leveln.mc1.mc2. ... mcn.play()[或stop(), _x, .......]

练习这样一个实例对你也许有帮助, 把一首你喜欢听的歌随意放在某个MC中,随意地在某个mc或按钮上加动作去控制它,想让它停就停,想让它放就放。

4、在网上学效力较低,如果你经济条件允许,可以用电话向任何一可咨询的地方咨询。我就这样学的。

5、要自强自信,不要迷信洋人的东东,活学活用重在理。

6、了解代码执行的先后顺序:

图层默认的是从下向上执行
level是从下向上执行
帧是随实际播放顺序执行
代码本身从上向下一行一行地执行

7、了解两种坐标系统:

场景下的坐标,o点在左上角,y轴向下是增大 x向右是增大
组件的坐标,o点在组件中心,y轴向下是增大 x向右是增大

8、了解三种文本域

静态文体域:和排版软件的文字工具一样。
动态文本域和输入文本域:其实就把它们看是两种变量,只不过是可见的变量。

9、详细了解GOTO语句

prevFrame()
跳至并停止在前一帧。
nextFrame()
跳至并停止在下一帧。
prevScene()
跳至并停止在前一场景的第1帧。
nextScene()
跳至并停止在下一场景的第1帧。
gotoAndPlay([scene,] frame)
跳至scene场景(省略表示当前场景)的frame帧并播放。
gotoAndStop([scene,] frame)
跳至scene场景(省略表示当前场景)的frame帧并停止。

10、了解MC的各种可改写的属性

_x 中心点所在相对X坐标(象素单位)
_y 中心点所在相对Y坐标(象素单位)
_xscale 横向缩放比例,初始为100
_yscale 纵向缩放比例,初始为100
_rotation 相对旋转角度(度单位)
_width 相对显示宽度(象素单位)
_height 相对显示高度(象素单位)
_alpha 显示透明度(0~100)
_visible 是否可见
_focusrect 是否显示焦点框


11、三大纪律:

1>写代码时一定要用英文(如EN CH)输入法。
2>必须要有唯物主义思想,没有加载的MC是不可以更改它的属性,更不可以写代码去控制它。这个问题较难掌握,高手有时也会犯,道理就是先有吃的才能请客吃,啥也没有请客吃什么呢?
3>操作什么一定要选什么(实上任何软件都是这样)。在MX中加代码时,如不选,就一定要写明名称,实际

上也是一种选择。

12、几项注意:

1>按钮不能盖着输入文本,动态文本和输入文本域不能盖着按钮。
2>用loadMovie时LEVEL1及以上的文件尽量少用大隐形按钮。
3>从一个文件中复制MC实例到别一个文件中时,尽量复制帧,而不能直接复制实例。
4>从一个文件中复制MC实例到别一个文件中时,要先把目标文件中的符号库中原有的符号,装进资源夹里


flash actionscript MovieClip(电影剪辑)控制2009年11月13日 星期五 下午 03:48Flash可以做出千变万化,多姿多彩的动画效果,其中很大一部分都是由控制电影剪辑(MC)的属性来达到的。在Flash MX 2004的【动作】面板中,属性被放在各个相应的类中,不像以前的版本,把各个类的属性统一地放在一起。如果在编程时需要使用MC的属性,你可以在【动作】面板的【内置类】|【影片】|【MovieClip】类别里找到。

1.MC属性控制
(1)MC属性简介

在Flash MX 2004中,MC的属性有30余种,我们在这里介绍部分常用的,最具代表性的属性。

_alpha:电影剪辑实例的透明度。有效值为 0(完全透明)到100(完全不透明)。默认值为100。你可以通过对MC的_alpha属性在0到100之间变化的控制,制作出或明或暗或模糊的效果来。

_rotation:电影剪辑的旋转角度(以度为单位)。从0到180的值表示顺时针旋转,从0到-180的值表示逆时针旋转。不属于上述范围的值将与360相加或相减以得到该范围内的值。例如:语句my_mc._rotation=450与my_mc._rotation=90相同。

_visible:确定电景剪辑的可见性,当MC的_visible的值是True(或者为1)时,MC为可见;当MC的_visible的值是false(或者为0)时,MC为不可见。

_height:影片剪辑的高度(以像素为单位)。

_width:影片剪辑的宽度(以像素为单位)。

_xscale:影片剪辑的水平缩放比例。

_yscale:影片剪辑的垂直缩放比例。

当_xscale和_yscale的值在0~100之间时,是缩小影片剪辑为原影片剪辑的百分数;当_xscale和_yscale的值大于100时,是放大原影片剪辑;当_xscale或_yscale为负时,水平或垂直翻转原影片剪辑并进行缩放。

不要把影片剪辑的高度与垂直缩放比例混淆,也不要把影片剪辑的宽度与水平缩放比例混为一谈,例如:

MC._width=50//表示把MC的宽设置为50像素;

MC._xscale=50//表示把MC的水平宽度设置为原来水平宽度的50%。

_x:影片剪辑的x坐标(整数)。

_y:电景剪辑的y坐标(整数)。

注意:如果影片剪辑在主时间轴中,则其坐标系统将舞台的左上角作为 (0, 0),向右和向下逐渐增加。如果影片剪辑在其它影片剪辑的时间轴中,则以其中心位置为(0,0),向右和向下为正,并逐

渐增加。向左和向上为负,并逐渐减小。

(2)getProperty()和setProperty()命令

在前面我们介绍了部分常用的MC的属性,那么到底怎么去实现对其属性的控制呢?常用的命令是setProperty()和getProperty(),即设置属性命令和取得属性的命令。在Flash MX 2004中,这两个命令在【动作】面板中【全局函数】|【影片剪辑控制】类别下。

setProperty()命令用来设置MC的属性,它的一般使用形式为:

setProperty(目标,属性,值);

命令中有三个参数:

目标:就是要控制(设置)属性的MC的实例名,注意包括MC的位置(路径)。

属性:即要控制的何种属性,例如透明度、可见性、放大比例等。

值:属性对应的值,包括数值、布尔值等。

例如:

setProperty(“_root.mc.mc1”,_visible, false);//表示把影片mc下一个实例名为mc1的影片设置为不可见。

setProperty("_root.dm",_rotation,30);//表示要使实例名叫dm的影片剪辑转动30度。

getProperty()命令用来获取MC的属性,它的一般使用形式为:

getProperty(目标,属性);

命令中有两个参数:

目标:被取属性的MC实例的名称;

属性:要取得的MC的属性。

例如:

mx= getProperty(“_root.mc.mc1”,_x);//取得影片mc下一个实例名为mc1的影片的横坐标,并把它交给变量mx;

setProperty("_root.dm1",_y, getProperty("_root.dm0",_y));//表示设置影片dm1的纵坐标为影片dm0的纵坐标。或者说,取得影片dm0的纵坐标的值,把这个值作为影片dm1的纵坐标的值。这种方法经常用在动态地为影片设置属性。

(3)使用点语法存取属性值

除了用setProperty()和getProperty()命令设置和取得MC的属性外,如果你的英语不错,ActionScript运用也比较熟练,那么你也可以用“.”点语法来设置或取得MC的属性,有时候会觉得很方便。点语句的用法的一般形式为:

影片剪辑名称.属性=属性值。

影片剪辑名称当然包括它的路径(后面会比较详细地介绍路径的概念)。下面我们以前面的例子来说明。

setProperty(“_root.mc.mc1”,_visible, false);

可以写成:

_root.mc.mc1._visible=false;

setProperty("_root.dm",_rotation,30);

可以写成:

_root.dm._rotation=30;

mx= getProperty(“_root.mc.mc1”,_x);

可以写成:

mx= _root.mc.mc1._x;

setProperty("_root.dm1",_y, getProperty("_root.dm0",_y));

可以改写成两句:

my=_root.dm0._y;

_root.dm1._y=my;

是不是有的情况下点语法更精练写呢?

2.复制电影剪辑命令
你一定见过Flash动画中倾盆大雨、满天雪花、繁星点点等特效吧!这些特效就是利用duplicateMovieClip()命令的神奇功能来实现的!

duplicateMovieClip()命令的一般使用形式为:

duplicateMovieClip(目标,新名

称,深度);

其中有三个参数:

target(目标):要复制的电影剪辑的名称和路径。

newname(新名称):是复制后的电影前辑实例名称。

depth(深度):已经复制电影剪辑的堆叠顺序编号。每个复制的电影剪辑都必须设置唯一的深度,否则后来复制的电影剪辑将替换以前的复制的电影剪辑,新复制的电影剪辑总是在原电影剪辑的上方。

在使用时,需要注意以下几点:

u 复制的影片会保持父级影片原来的所有属性,所以,原来的影片是静止的,复制后的影片也静止,并且一个叠放在另一个上,如果你不给它们设置不同坐标,你就只能看到编号最大的复制影片,也就看不出是否复制出的效果了。

u 原来的影片在做补间运动,那么复制品也要做同样的运动。并且无论播放头在原始影片剪辑(或“父”级)中处于什么位置,复制的影片播放头始终从第一帧开始。所以,复制品和原影片始终有个时间差,因此,即使你不给复制的影片设置坐标,你也可以看到复制品在运动。

u 复制影片经常要与影片属性控制(特别是_x,_y,_alpha,_rotation,_xscale,_yscale等属性)结合才能更好地发挥复制效果。

u 复制影片还经常都要和循环语句配合,才能复制多个影片剪辑。

有时候,你需要删除复制好的影片,那就用removeMovieClip()命令,一般形式为:

removeMovieClip(影片剪辑实例名);

这个命令只有一个参数,那就是复制后的影片剪辑实例名称。

例如:

for(I=1;I<10;I++){ //变量I从1开始,到9为止,变量每次加1

duplicateMovieClip(”_root.a”,”a”+I,I);

}

上面这段程序代码对一个名字为a的影片剪辑实例进行复制,复制后的实例名称为a1,a2,…a9,深度分别为1,2,…9。

那么,在删除这些复制的影片剪辑实例时,你可以用下面的循环语句:

for(I=1;I<10;I++){

removeMovieClip(”a”+i);

}

有关这个复制影片剪辑命令的详细应用请参看本章第四节的前两个实例。

3.影片剪辑的路径
在前面,我们不止一次谈到MC的路径,那么什么叫路径,怎么运用路径呢?

我们知道,在Flash的场景中有个主时间轴,在场景里可以放置多个MC,每个MC又有它自己的时间轴,每个MC又可以有多个子MC……,就像在我们国家(场境)下有很多个省(MC),每个省下又有许多个市(子MC)……。这样,在一个Flash的影片中,就会出现层层叠叠的MC,如果你要对其中一个MC进行操作,你就说出MC的位置,也就是要说明MC的路径。

路径分绝对路径和相对路径,下面我们还是用一个实际例子来进行说明。

假设在场境里有两个MC,一个MC的实例名为mx,在mx

下有个子MC名为mx1,在mx1的下面还有一个孙MC名为mx2。

另一个MC的实例名为dm,在dm下有个子MC名为dm1,在dm1下还有个孙MC名为dm2。

(1)绝对路径

不论在那个MC中进行操作,都是从主场景时间轴(用_root表示)出发,到MC,再到MC的子级MC,再到MC的孙级MC…,一层一层地往下寻找。例如下面的操作:

对mx2使用play()的命令操作,应使用以下这样的程序代码:

_root.mx.mx1.mx2.play();

对dm1使用play()的命令操作,应使用以下这样的程序代码:

_root.dm.dm1.play();

对mx使用play()的命令操作,应使用以下这样的程序代码:

_root.mx.play();

(2)相对路径

在一个MC内的父、子、孙关系中,有时候用相对路径比较简单,但是,用相对路径时,你必须清楚你在哪一级的MC中,你在对哪一级的MC进行操作。我们以上面的mx为例,使用的仍然是play()命令。

在mx1中,对它本身进行操作的程序代码为:

this.play();

对mx进行操作,因为mx是它的上一级(父级),所以程序代码为:

_parent.play();

对mx2的操作,因为mx2是它的子级,所以程序代码为:

this.mx2.play();或者mx2.play();

如果在mx2中对mx用相对路径操作就比较麻烦了,程序代码为:

_parent._parent.play(),因为mx是mx2的父级的父级呀。

如果用相对路径在mx中或者mx内的MC,对另一个dm内的MC进行操作,就十分麻烦了,我们不推荐这种方法。

从上面的例子中,我们知道,绝对路径比较好理解,并且用绝对路径可以不必考虑你是在哪级的MC中进行操作的。直接从主场景时间轴(_root)出发,一层一层的往下找,如果你对路径的理解不透,建议你就用绝对路径。用相对路径就必须清楚操作命令是在哪一级MC写的,是在对哪一级的MC进行操作,比较熟练后,在一个MC内用相对路径有时候比较简单。

(3)插入路径

在对电影剪辑MC进行编程操作时,你还可以使用【插入目标路径】对话框来对MC的路径进行设置。在【动作】面板中,单击【插入目标路径】按钮,如图7-1-3所示,就可以打开【插入目标路径】对话框,如图7-1-4所示。

如图7-1-4所示是在对MC设置行为时经常会用到的对话框。在其中,你可以看到经过你注册的MC实例,你需要对哪个MC进行设置,你就可以单击这个MC,然后,选择下面的【相关】(相对路径)或者【绝对】(绝对路径)单选按钮,最后单击【确定】,那么这个MC的实例名和路径就会进入你编辑的脚本中了。

另外,需要说明的是,对数据或者变量的某些操作,也需要路径的相关知识,也可以仿照对MC的操作。不过就不能用【插入目标路径】对话框了。

例如,前面的两个MC中

,我们想把mx1中的一个数据k,在dm1中得到,那么,我们可以在dm1中用绝对路径来设置:

I=_root.mx.mx1.k;

4.拖曳影片剪辑命令
你一定见过,在Flash动画中,你的鼠标突然变成一个美丽的动物图画,或者你可以任意搬动动画中的物体,Flash动画是怎么实现的呢?那就得用上两个成对出现的命令:“startDrag()”拖拽影片和“stopDrag()”停止拖拽影片。

如果你要做课件,这两个命令可是不能少的了。

startDrag()命令的一般形式为:

myMovieClip.startDrag(lock, left, top, right, bottom);

myMovieClip是要拖动影片的名字,lock表示影片拖动时是否中心锁定在鼠标,值有true或false,true表示锁定,false表示不锁定。

left,top,right,bottom这四个参数分别设置影片拖动的左,上,右,下的范围,注意是相对于影片剪辑父级坐标的值,这些值指定该影片剪辑被约束的矩形。这些参数是可选的。

如果是myMovieClip.startDrag(),则是可以在整个屏幕范围内任意拖动。

stopDrag()命令可以实现停止拖拽影片命令,这个命令没有参数。

注意:如果你要拖动某一个影片,一般情况下,你应当在这个影片内加一个按扭,再把上面的命令附加在这个按扭上。

例如:在场景中有一个影片,实例名为mc,坐标为(250,200),你想让它以(250,200)为中心,高为200,宽为300的矩形范围内被拖动,就应当在mc内放一个按扭,然后在按扭上加上下面的程序代码:

on (press) {

_root.mc.startDrag(true,100,100,400,300);//这里的坐标是指的场景内的坐标。

}

on (release) {

stopDrag();//停止拖动这个影片。

}


相关主题
文本预览