1、播放控制类
gotoAndPlay(scene, frame)
参数
scene 播放头将转到的场景的名称
frame 播放头将转到的帧的编号或标签
说明
动作;将播放头转到场景中指定的帧并从该帧开始播放如果未指定场景,则播放头将转到当前场景中的指定帧
示例
当用户点击 gotoAndPlay 动作所分配到的按钮时,播放头将转到第 16 帧并开始播放
on(release) {
gotoAndPlay(16);
}
2、播放控制类
gotoAndStop(scene, frame)
参数
scene 播放头将转到的场景的名称
frame 播放头将转到的帧的编号或标签
说明
动作;将播放头转到场景中指定的帧并停止播放如果未指定场景,则播放头将转到当前场景中的帧
示例
当用户点击 gotoAndStop 动作所分配到的按钮时,播放头将转到第 5 帧并且影片停止播放
on(release) {
gotoAndStop(5);
}
3、播放控制类
on(mouse Event) {
statement(s);
}
参数
statement(s) 发生 mouse Event 时要执行的指令
mouse Event 是称作事件的触发器当发生此事件时,执行事件后面花括号中的语句可以为 mouse Event 参数指定下面的任何值:
- press 在鼠标指针经过按钮时按下鼠标按钮
- release 在鼠标指针经过按钮时释放鼠标按钮
- release Outside 当鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮之外,此时释放鼠标按钮
- rollout 鼠标指针滑出按钮区域
- rollover 鼠标指针滑过按钮
- dragOut 在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮区域
- dragOver 在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮,再滑回此按钮
- keyPress (key) 按下指定的 key此参数的 key 部分可使用使用 Flash的附录 B键盘键和键控代码值中所列的任何键控代码进行指定,或者使用Key 对象的属性摘要中列出的任何键常量进行指定
说明
事件处理函数;指定触发动作的鼠标事件或者按键事件
示例
在下面的脚本中,当按下鼠标按钮时,执行 start Drag 动作,当释放鼠标按钮时,执行条件脚本,并放下该对象
on(press) {
startDrag("rabbit");
}
on(release) {
trace(_root.rabbit._y);
trace(_root.rabbit._x);
stopDrag();
}
4、传递
fscommand("command", "parameters")
参数
command 一个传递给宿主应用程序用于任何用途的字符串;或者一个传递给独立 Flash Player 的命令
parameters 一个传递给宿主应用程序用于任何用途的字符串;或者一个传递给 Flash Player 的值
说明
动作;使 Flash 影片能够与 Flash Player 或承载 Flash Player 的程序(如 Web 浏览器)进行通讯还可使用 fscommand 动作将消息传递给 Macromedia Director,或者传递给 Visual BasicVisual C++ 和其他可承载 ActiveX 控件的程序
用法 1:若要将消息发送给 Flash Player,必须使用预定义的命令和参数
用法 2:若要在 Web 浏览器中使用 fscommand 动作将消息发送到脚本撰写语言(如 JavaScript),可以在 command 和 parameters 参数中传递任意两个参数这些参数可以是字符串或表达式,在捕捉或处理 fscommand 动作的 JavaScript 函数中使用这些参数
在 Web 浏览器中,fscommand 动作在包含 Flash 影片的 HTML 页中调用 JavaScript 函数 moviename_DoFScommandmoviename 是 Flash Player 影片的名称,该名称由 EMBED 标签的 NAME 属性指定,或由 OBJECT 标签的 ID 属性指定如果为 Flash Player 影片分配名称 myMovie,则调用的 JavaScript 函数为 myMovie_DoFScommand
用法 3:fscommand 动作可将消息发送给 Macromedia Director,Lingo 将消息解释为字符串事件或可执行的 Lingo 代码如果该消息为字符串或事件,则必须编写 Lingo 代码以便从 fscommand 动作接收该消息,并在 Director 中执行动作有关更多信息,请访问Director 支持中心(Director Support Center)
用法 4:在 Visual BasicVisual C++ 和可承载 ActiveX 控件的其他程序中,fscommand 利用可在环境的编程语言中处理的两个字符串发送 VB 事件有关更多信息,请使用关键字 Flash method 搜索 Flash 支持中心 (Flash Support Center)
示例
用法 1:在下面的示例中,fscommand 动作设置 Flash Player,以便在释放按钮时,将影片缩放到整个显示器屏幕大小
on(release){
fscommand("fullscreen", true);
}
用法 2:下面的示例使用应用到 Flash 中按钮的 fscommand 动作打开 HTML 页中的 JavaScript 消息框消息本身作为 fscommand 参数发送到 JavaScript
必须将一个函数添加到包含 Flash 影片的 HTML 页此函数 myMovie_DoFSCommand 位于 HTML 页中,等待 Flash 中的 fscommand 动作当在 Flash 中触发 fscommand 后(例如,当用户按下按钮时),command 和 parameter 字符串被传递到 myMovie_DoFSCommand 函数可以在 JavaScript 或 VBScript 代码中以任何需要的方式使用所传递的字符串在此示例中,该函数包含一个条件 if 语句,该语句检查命令字符串是否为messagebox如果是,则 JavaScript 警告框(或message box)打开并显示 parameters 字符串的内容
function myMovie_DoFSCommand(command, args) {
if (command == "messagebox") {
alert(args);
}
}
在 Flash 文档中,将 fscommand 动作添加到按钮:
fscommand("messagebox", "This is a message box called from within Flash.")
也可以为 fscommand 动作和参数使用表达式,如下面的示例所示:
fscommand("messagebox", "Hello, " + name + ", welcome to our Web site!")
若要测试影片,请选择文件>发布预览>HTML
如果在 HTML发布设置中使用具有 FSCommand 模板的 Flash 发布影片,则自动插入 myMovie_DoFSCommand 函数该影片的 NAME 和 ID 属性将是其文件名例如,对于文件 myMovie.fla,该属性将设置为 myMovie
5、获取文档的 URL
getURL(url [, window [, "variables"]])
参数
url 可从该处获取文档的 URL
window 一个可选参数,指定文档应加载到其中的窗口或 HTML 框架您可输入特定窗口的名称,或从下面的保留目标名称中选择:
- _self 指定当前窗口中的当前框架
- _blank 指定一个新窗口
- _parent 指定当前框架的父级
- _top 指定当前窗口中的顶级框架
variables 用于发送变量的 GET 或 POST 方法如果没有变量,则省略此参数GET方法将变量追加到 URL 的末尾,该方法用于发送少量变量POST 方法在单独的 HTTP 标头中发送变量,该方法用于发送长的变量字符串
说明
动作;将来自特定 URL 的文档加载到窗口中,或将变量传递到位于所定义 URL 的另一个应用程序若要测试此动作,请确保要加载的文件位于指定的位置若要使用绝对 URL(例如,),则需要网络连接
示例
此示例将一个新 URL 加载到空浏览器窗口中getURL 动作将变量 incomingAd 作为 url 参数的目标,这样您无需编辑 Flash 影片即可更改加载的 URL在这之前,在影片中使用 load Variables 动作将 incoming Ad 变量的值传递到 Flash 中
on(release) {
getURL(incomingAd, "_blank");
}
6loadMovie("url",level/target[, variables])
参数
url 要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL相对路径必须相对于级别 0 处的 SWF 文件该 URL 必须与影片当前驻留的 URL 在同一子域为了在 Flash Player 中使用 SWF 文件或在 Flash 创作应用程序的测试模式下测试 SWF 文件,必须将所有的 SWF 文件存储在同一文件夹中,而且其文件名不能包含文件夹或磁盘驱动器说明
target 指向目标影片剪辑的路径目标影片剪辑将替换为加载的影片或图像只能指定 target 影片剪辑或目标影片的 level 这两者之一;而不能同时指定两者
level 一个整数,指定 Flash Player 中影片将被加载到的级别在将影片或图像加载到级别时,标准模式下动作面板中的 loadMovie 动作将切换为 loadMovieNum;在专家模式下,您必须指定 loadMovieNum 或从动作工具箱中选择它
variables 一个可选参数,指定发送变量所使用的 HTTP 方法该参数须是字符串 GET 或 POST如没有要发送的变量,则省略此参数GET 方法将变量追加到 URL 的末尾,该方法用于发送少量变量POST 方法在单独的 HTTP 标头中发送变量,该方法用于发送长的变量字符串
说明
动作;在播放原始影片的同时将 SWF 或 JPEG 文件加载到 Flash Player 中loadMovie 动作使您可以同时显示几个影片,并且无需加载另一个 HTML 文档就可在影片之间切换如果不使用 loadMovie 动作,则 Flash Player 显示单个影片(SWF 文件),然后关闭
当使用 loadMovie 动作时,必须指定 Flash Player 中影片将加载到的级别或目标影片剪辑如果指定级别,则该动作变成 loadMovieNum如果影片加载到目标影片剪辑,则可使用该影片剪辑的目标路径来定位加载的影片
加载到目标的影片或图像会继承目标影片剪辑的位置旋转和缩放属性加载的图像或影片的左上角与目标影片剪辑的注册点对齐另一种情况是,如果目标为 _root 时间轴,则该图像或影片的左上角与舞台的左上角对齐
使用 unloadMovie 动作可删除使用 loadMovie 动作加载的影片
示例
下面的 loadMovie 语句附加到标签为 Products 的导航按钮在舞台上有一个实例名称为 dropZone 的不可见影片剪辑load Movie 动作使用此影片剪辑作为目标参数将 SWF 文件形式的产品加载到舞台上的正确位置
on(release) {
loadMovie("products.swf",_root.dropZone);
}
下面的示例从目录中加载一个 JPEG 图像,该目录与调用 load Movie 动作的 SWF 文件的目录相同:
load Movie("image45.jpeg", "ourMovieClip");
7loadMovieNum("url",level[, variables])
参数
url 要加载的 SWF 或 JPEG 文件的绝对或相对 URL相对路径必须相对于级别 0 处的 SWF 文件该 URL 必须与影片当前驻留的 URL 在同一子域为了在独立的 Flash Player 中使用 SWF 文件或在 Flash 创作应用程序的测试影片模式下测试 SWF 文件,必须将所有的 SWF 文件存储在同一文件夹中,并且其文件名不能包含文件夹或磁盘驱动器说明
level 一个整数,指定 Flash Player 中影片将被加载到的级别
variables 一个可选参数,指定发送变量所使用的 HTTP 方法该参数必须是字符串 GET 或 POST如果没有要发送的变量,则省略此参数GET 方法将变量追加到 URL 的末尾,该方法用于发送少量变量POST 方法在单独的 HTTP 标头中发送变量,该方法用于发送长的变量字符串
说明
动作;在播放原来加载的影片的同时将 SWF 或 JPEG 文件加载到 Flash Player 中的某个级别在将影片加载到级别而不是目标时,标准模式下动作面板中的 loadMovie 动作将切换为 loadMovieNum;在专家模式下,您必须指定 loadMovieNum 或从动作工具箱中选择它一般情况下,Flash Player 显示单个影片(SWF 文件),然后关闭loadMovieNum 动作使您可以同时显示几个影片,并且无需加载另一个 HTML 文档就可在影片之间切换
Flash Player 具有从级别 0 开始的级别堆叠顺序这些级别类似于醋酸纤维层;除了每个级别上的对象之外,它们是透明的当使用 loadMovieNum 动作时,必须指定 Flash Player 中影片将加载到的级别在影片加载到级别后,即可使用语法 _levelN 来定位影片,其中 N 为级别号
当加载影片时,可指定任何级别号,并且可将影片加载到已加载有 SWF 文件的级别如果执行此动作,则新影片将替换现有的 SWF 文件如果将影片加载到级别 0,则 Flash Player 中的每个级别均被卸载,并且级别 0 将替换为该新文件处于级别 0 的影片为所有其他加载的影片设置帧频背景色和帧的大小
loadMovieNum 动作也允许您在播放影片时将 JPEG 文件加载到影片中对于图像和 SWF 文件,在文件加载时,图像的左上角均与舞台的左上角对齐另外,在这两种情况下,加载的文件均继承旋转和缩放设置,并且原始内容将被覆盖
使用 unloadMovieNum 动作可删除使用 loadMovieNum 动作加载的影片或图像
示例
此示例将 JPEG 图像image45.jpg加载到 Flash Player 的级别 2 中
loadMovieNum("", 2); //
8load Variables ("url" ,level/"target"[, variables])
参数
url 变量所处位置的绝对或相对 URL如果使用 Web 浏览器访问影片,则此 URL 的宿主必须与影片本身在同一子域中
level 指定 Flash Player 中接收这些变量的级别的整数当将变量加载到级别时,在标准模式下,动作面板中的该动作变成 loadVariablesNum;在专家模式下,您必须指定 loadVariablesNum 或从动作工具箱中选择它
target 指向接收所加载变量的影片剪辑的目标路径您只能指定 target 影片剪辑或 Flash Player 中的 level(级别)这两者之一;而不能同时指定这两者
variables 一个可选参数,指定发送变量所使用的 HTTP 方法该参数必须是字符串 GET 或 POST如果没有要发送的变量,则省略此参数GET 方法将变量追加到 URL 的末尾,该方法用于发送少量变量POST 方法在单独的 HTTP 标头中发送变量,该方法用于发送长的变量字符串
说明
动作;从外部文件(例如文本文件,或由 CGI 脚本Active Server Page (ASP)PHP 或 Perl 脚本生成的文本)读取数据,并设置 Flash Player 级别或目标影片剪辑中变量的值此动作还可用于使用新值更新活动影片中的变量
在指定 URL 处的文本必须为标准的 MIME 格式 application/x-www-form-urlencoded(一种 CGI 脚本使用的标准格式)要加载的影片和变量必须驻留在同一子域中可以指定任意数量的变量例如,下面的语句定义了几个变量:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103
将要在 Flash Player 实例中打开的第一个影片加载到最下一级(在代码中标识为 _level0)当使用 loadMovie 或 loadMovieNum 动作将后面的影片加载到 Flash Player 中时,必须指定一个 Flash Player 中的级别号,或者指定一个目标影片剪辑(每个影片都将加载到该级别或目标影片剪辑中)当使用 load Variables 动作时,必须指定变量将加载到的 Flash Player 级别或影片剪辑目标
示例
此示例将来自文本文件的信息加载到主时间轴上 varTarget 影片剪辑的文本字段中文本字段的变量名必须与 data.txt 文件中的变量名匹配
on(release) {
loadVariables("data.txt", "_root.varTarget");
}
9load Variables ("url" ,level [, variables])
参数
url 变量所处位置的绝对或相对 URL如果使用 Web 浏览器访问影片,则此 URL 的宿主必须与影片本身在同一子域中
level 指定 Flash Player 中接收这些变量的级别的整数
variables 一个可选参数,指定发送变量所使用的 HTTP 方法该参数必须是字符串 GET 或 POST如果没有要发送的变量,则省略此参数GET 方法将变量追加到 URL 的末尾,该方法用于发送少量变量POST 方法在单独的 HTTP 标头中发送变量,该方法用于发送长的变量字符串
说明
动作;从外部文件(例如文本文件,或由 CGI 脚本Active Server Page (ASP)PHP 或 Peril 脚本生成的文本)读取数据,并设置 Flash Player 级别中变量的值此动作还可用于使用新值更新活动影片中的变量当将变量加载到级别时,在标准模式下,动作面板中的该动作变成 loadVariablesNum;在专家模式下,您必须指定 loadVariablesNum 或从动作工具箱中选择它
在指定 URL 处的文本必须为标准的 MIME 格式 application/x-www-form-urlencoded(一种 CGI 脚本使用的标准格式)要加载的影片和变量必须驻留在同一子域中可以指定任意数量的变量例如,下面的语句定义了几个变量:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103
将要在 Flash Player 实例中打开的第一个影片加载到最下一级(在代码中标识为 _level0)当使用 loadMovie 或 loadMovieNum 动作将后面的影片加载到 Flash Player 中时,必须指定一个 Flash Player 中的级别号,或指定一个目标影片剪辑(每个影片都将加载到该级别或目标影片剪辑中)当使用 loadVariablesNum 动作时,必须指定变量将加载到的 Flash Player 级别
示例
此示例将来自文本文件中的信息加载到 Flash Player 中级别 0 处的影片的主时间轴上的文本字段中文本字段的变量名必须与 data.txt 文件中的变量名匹配
on(release) {
loadVariablesNum("data.txt", 0);
}
另请参见
getURL
loadMovie
loadMovieNum
loadVariables
MovieClip.loadMovie
MovieClip.loadVariables
10unload Movie[Num](level/"target")
参数
level 加载影片的级别 (_levelN)从一个级别卸载影片时,在标准模式下,动作面板中的 unload Movie 动作切换为 unloadMovieNum;在专家模式下,必须指定 unloadMovieNum,或者从动作工具箱中选择它
target 影片剪辑的目标路径
说明
动作;从 Flash Player 中删除一个已加载的影片或影片剪辑若要卸载一个已经加载到 Flash Player 级别中的影片,请使用 level 参数若要卸载已经加载的影片剪辑,请使用 target 参数
示例
下面的示例卸载主时间轴上的影片剪辑 draggable,并将影片 movie.swf 加载到级别 4 中
on (press) {
unloadMovie ("_root.draggable");
loadMovieNum ("movie.swf", 4);
}
下面的示例卸载已经加载到级别 4 中的影片:
on (press) {
unloadMovieNum (4);
}
另请参见
load Movie
loadMovieNum
unloadMovieNum
11unloadMovieNum(level)
参数
level 加载影片的级别 (_levelN)
说明
动作;从 Flash Player 中删除已加载的影片
另请参见
loadMovie
loadMovieNum
12duplicateMovieClip(target, newname,depth)
参数
target 要复制的影片剪辑的目标路径
new name 复制的影片剪辑的唯一标识符
depth 复制的影片剪辑的唯一深度级别深度级别是复制的影片剪辑的堆叠顺序这种堆叠顺序很像时间轴中图层的堆叠顺序;较低深度级别的影片剪辑隐藏在较高堆叠顺序的剪辑之下必须为每个复制的影片剪辑分配一个唯一的深度级别,以防止它替换现有深度上的影片
说明
动作;当影片正在播放时,创建一个影片剪辑的实例无论播放头在原始影片剪辑(或父级)中处于什么位置,复制的影片剪辑的播放头始终从第一帧开始父影片剪辑中的变量不拷贝到复制的影片剪辑中如果删除父影片剪辑,则复制的影片剪辑也被删除使用 removeMovieClip 动作或方法可以删除由 duplicateMovieClip 创建的影片剪辑实例
示例
该语句复制影片剪辑实例 flower 十次变量 i 用于为每个复制的影片剪辑创建新实例名和唯一的深度
on (release) {
amount = 10;
while (amount>0) {
duplicateMovieClip (_root.flower, "mc"+i, i);
setProperty ("mc"+i, _x, random(275));
setProperty ("mc"+i, _y, random(275));
setProperty ("mc"+i, _alpha, random(275));
setProperty ("mc"+i, _xscale, random(50));
setProperty ("mc"+i, _yscale, random(50));
i++;
amount--;
}
}
另请参见
MovieClip.duplicateMovieClip
removeMovieClip
MovieClip.removeMovieClip
13onClipEvent(movieEvent){
statement(s);
}
参数
movie Event 是一个称作事件的触发器当事件发生时,执行该事件后面花括号中的语句可以为 movie Event 参数指定下面的任何值:
- load 影片剪辑一旦被实例化并出现在时间轴中时,即启动此动作
- unload 在从时间轴中删除影片剪辑之后,此动作在第一帧中启动处理与 Unload 影片剪辑事件关联的动作之前,不向受影响的帧附加任何动作
- enter Frame 以影片帧频不断地触发此动作首先处理与 enter Frame 剪辑事件关联的动作,然后才处理附加到受影响帧的所有帧动作脚本
- mouse Move 每次移动鼠标时启动此动作_xmouse 和 _ymouse 属性用于确定当前鼠标位置
- mouse Down 当按下鼠标左键时启动此动作
- mouse Up 当释放鼠标左键时启动此动作
- key Down 当按下某个键时启动此动作使用 Key.getCode 方法获取最近按下的键的有关信息
- key Up 当释放某个键时启动此动作使用 Key.getCode 方法获取最近按下的键的有关信息
- data 当在 loadVariables 或 loadMovie 动作中接收数据时启动此动作当与 loadVariables 动作一起指定时,data 事件只发生一次,即加载最后一个变量时当与 load Movie 动作一起指定时,获取数据的每一部分时,data 事件都重复发生
statement(s) 发生 mouse Event 时要执行的指令
说明
事件处理函数;触发为特定影片剪辑实例定义的动作
示例
下面的语句在导出影片时包括来自外部文件的脚本;当加载动作所附加到的影片剪辑时,运行包含脚本中的动作:
onClipEvent(load) {
#include "myScript.as"
}
下面的示例将 onClipEvent 与 key Down 影片事件一起使用key Down 影片事件通常与 Key 对象的一个或多个方法和属性一起使用下面的脚本使用 Key.getCode 方法找出用户按下了哪个键;如果按下的键与 Key. RIGHT 属性相匹配,则将影片移到下一帧;如果按下的键与 Key. LEFT 属性相匹配,则将影片移到上一帧
OnClipEvent(key Down) {
if (Key.getCode() == Key. RIGHT) {
_parent.nextFrame();
} else if (Key.getCode() == Key. LEFT){
_parent.prevFrame();
}
}
下面的示例将 onClipEvent 与 mouse Movie 影片事件一起使用_xmouse 和 _ymouse 属性跟踪每次鼠标移动时的鼠标位置
onClipEvent(mouse Move) {
stageX=_root. mouse;
stageY=_root. mouse;
}
另请参见
MovieClip._xmouse
MovieClip._ymouse
On
14removeMovieClip(target)
参数
target 用 duplicateMovieClip 创建的影片剪辑实例的目标路径,或者用 Movie Clip 对象的 attach Movie 或 duplicateMovieClip 方法创建的影片剪辑的实例名
说明
动作;删除用 Movie Clip 对象的 attach Movie 或 duplicateMovieClip 方法创建的,或者用 duplicateMovieClip 动作创建的影片剪辑实例
另请参见
duplicateMovieClip
MovieClip.duplicateMovieClip
MovieClip.attachMovie
MovieClip.removeMovieClip
15set Property("target",property,value/expression)
参数
target 到要设置其属性的影片剪辑实例名称的路径
property 要设置的属性
value 属性的新文本值
expression 计算结果为属性新值的公式
说明
动作;当影片播放时,更改影片剪辑的属性值
示例
当单击按钮时,此语句将名为 star 的影片剪辑的 _alpha 属性设置为 30%:
on(release) {
setProperty("star", _alpha, "30");
}
另请参见
get Property
16delete reference
参数
reference 要消除的变量或对象的名称
说明
运算符;销毁由 reference 参数指定的对象或变量,如果该对象被成功删除,则返回 true;否则返回 false 值该运算符对于释放脚本所用的内存非常有用虽然 delete 是一个运算符,但它通常作为语句使用,如下所示:
delete x;
如果 reference 参数不存在,或者不能被删除,则 delete 运算符可能失败并返回 false预定义的对象和属性以及由 var 声明的变量不能删除不能使用 delete 运算符删除影片剪辑
示例
下面的示例创建一个对象并使用它,然后在不再需要时删除它
account = new Object();
account. ;
account. balance = 10000;
delete account;
示例
下面的示例删除对象的一个属性
// create the new object "account"
account = new Object();
// assign property name to the account
account. ;
// delete the property
delete account. name;
示例
下面是删除对象属性的另一个示例
// create an Array object with length 0
array = new Array();
// Array. length is now 1
array[0] = "abc";
// add another element to the array,Array.length is now 2
array[1] = "def";
// add another element to array,Array.length is now 3
array[2] = "ghi";
// array[2] is deleted, but Array. length is not changed,
delete array[2];
下面的示例阐释了 delete 对于对象引用的行为方式:
// create a new object, and assign the variable ref1
// to refer to the object
ref1 = new Object();
ref1.name = "Jody";
// copy the reference variable into a new variable
// and delete ref1
ref2 = ref1;
delete ref1;
如果 ref1 尚未拷贝到 ref2 中,则当删除 ref1 时,该对象将被删除,因为将没有指向它的引用如果删除 ref2,则不再有指向该对象的任何引用,该对象将被销毁,同时释放它所使用的内存
另请参见
var
17set(variable, expression)
参数
variable 保存 expression 参数值的标识符
expression 分配给变量的值
说明
动作;为变量赋值variable 是保存数据的容器容器本身始终不变,但内容可以更改通过在影片播放时更改变量的值,可以记录和保存有关用户所执行操作的信息;记录当影片播放时更改的值;或者计算某条件是 true 还是 false
变量可以保存任何类型的数据(例如,字符串数字布尔值对象或影片剪辑)每个影片和影片剪辑的时间轴都有其自己的变量集,每个变量又都有其自己独立于其他时间轴上的变量的值
动作脚本是一种动态类型化语言每个变量都有一种类型该类型是在运行时分配的,并且可以在执行过程中进行更改这一点与静态类型化语言(如 Java 或 C++)不同,在静态类型化语言中,在编译时分配类型,而且在运行时无法更改
示例
此示例设置一个名为 orig_x_pos 的变量,该变量存储 ship 影片剪辑的原始 轴位置,以便以后在影片中将船 (ship) 重置到其起始位置
on(release) {
set(orig_x_pos, get Property ("ship", _x ));
}
上面的代码与下面的代码结果一样:
on(release) {
orig_x_pos = ship._x;
}
另请参见
var
call
18var variableName1 [= value1][...,variableNameN [=valueN]]
参数
variable Name 标识符
value 分配给变量的值
说明
动作;用于声明局部变量如果在函数内声明局部变量,那么变量就是为该函数定义的,且在该函数调用结束时到期如果变量不是在块 ({}) 内声明的,但使用 call 动作执行该动作列表,则该变量为局部变量,且在当前列表结束时到期如果变量不是在块中声明的,且不使用 call 动作执行当前动作列表,则这些变量不是局部变量
示例
下面的示例使用 var 动作声明和分配变量:
var x;
var y = 1;
var z = 3, w = 4;
var s, t, u = z;
19with (object) {
statement(s);
}
参数
object 动作脚本对象或影片剪辑的实例
statement(s) 花括号中包含的动作或一组动作
说明
动作;允许您使用 object 参数指定一个对象(比如影片剪辑),并使用 statement(s) 参数计算对象中的表达式和动作这可以使您不必重复书写对象的名称或路径
object 参数成为读取 statement(s) 参数中的属性变量与函数的上下文例如,如果 object 为 my Array,且指定属性中的两个是 length 与 concat,则这些属性将自动作为 myArray.length 与 myArray.concat 进行读取在另一个示例中,如果 object 为 state. California,则 with 动作中的任何动作或语句将从 California 实例中调用
若要查找 statement(s) 参数中某标识符的值,动作脚本将从 object 指定的范围链的开头开始查找,并以特定的顺序在范围链的每个级别中搜索该标识符
with 动作使用范围链解析标识符,该范围链从下面列表中的第一项开始,一直到最后一项结束:
- 在 with 动作最里面的 object 参数中指定的对象
- 在 with 动作最外面的 object 参数中指定的对象
- 激活的对象(当调用函数时自动创建的临时对象,该函数包含函数所调用的局部变量)
- 包含当前执行脚本的影片剪辑
- 全局对象(诸如 Math 与 String 的内置对象)
若要在 with 动作中设置变量,该变量必须已在 with 动作外部进行了声明,或者您必须输入该变量所生存时间轴的完整路径如果未声明该变量就在 with 动作中设置它,则该 with 动作将根据范围链寻找该值如果该变量还不存在,则将在调用 with 动作的时间轴上设置此新值
在 Flash 5 中,with 动作替换了被否决的 tell Target 动作建议您使用 with 而不使用 tell Target,因为前者是对 ECMA-262 标准的一个标准动作脚本扩展功能with 与 tell Target 动作的主要差异在于 with 采用对影片剪辑或其他对象的引用作为其参数,而 tell Target 采用标识影片剪辑的目标路径字符串作为其参数,且不能用于指向对象
示例
下面的示例设置 someOtherMovieClip 实例的 x 与 y 属性,然后指示 someOtherMovieClip 转到第三帧并停止
with (someOtherMovieClip) {
_x = 50;
_y = 100;
gotoAndStop(3);
}
下面的代码片断显示如何不使用 with 动作编写前面的代码
someOtherMovieClip._x = 50;
someOtherMovieClip._y = 100;
someOtherMovieClip.gotoAndStop(3);
还可使用 tell Target 动作编写这段代码然而,如果 someOtherMovieClip 不是影片剪辑,而是一个对象,则不能使用 with 动作
tell Target ("someOtherMovieClip") {
_x = 50;
_y = 100;
gotoAndStop(3);
}
with 动作对于在范围链列表中同时访问多项十分有用在下面的示例中,内置 Math 对象被放置在范围链的前面将 Math 设置为默认对象可以将标识符 cossin 与 PI 分别解析为 Math.cosMath.sin 与 Math.PI标识符 axy 与 r 不是 Math 对象的方法或属性,但由于它们存在于函数 polar 的对象激活范围中,所以将它们解析为相应的局部变量
function polar(r) {
var a, x, y;
with (Math) {
a = PI * r * r;
x = r * cos(PI);
y = r * sin(PI/2);
}
trace("area = " +a);
trace("x = " + x);
trace("y = " + y);
}
可以使用嵌套的 with 动作访问多重范围中的信息在下面的示例中,实例 fresno 与实例 salinas 是实例 california 的子级该语句设置 fresno 与 salinas 的 _alpha 值,且不改变 california 的 _alpha 值
with (california){
with (fresno){
_alpha = 20;
}
with (salinas){
_alpha = 40;
}
}
另请参见
tell Target
20break
说明
动作;出现在一个循环(forfor. indo while 或 while 循环)中,或者出现在与 switch 动作内特定 case 语句相关联的语句块中break 动作可命令 Flash 跳过循环体的其余部分,停止循环动作,并执行循环语句之后的语句当使用 break 动作时,Flash 解释程序会跳过该 case 块中的其余语句,转到包含它的 switch 动作后的第一个语句使用 break 动作可跳出一系列嵌套的循环
示例
下面的示例使用 break 动作退出一个循环,如果没有该动作,则该循环为无限循环
i = 0;
while (true) {
if (i >= 100) {
break;
}
i++;
}
另请参见
for
for. in
do while
while
switch
case
|