当前位置: 主页 > 平面设计 > Flash CS5操作指南(38)时间轴与 ActionScript

Flash CS5操作指南(38)时间轴与 ActionScript

  • 2021-12-25
  • 来源/作者: 本站原创    / 佚名    
  • 2 次浏览

时间轴与 ActionScript

您可以使用 ActionScript® 在运行时间控制时间轴。使用 ActionScript 便可以在 FLA 档中建立互动效果与其他功能,这是单靠使用「时间轴」所无法做到的。

绝对路径

绝对路径是以文件加载的阶层名称做为开始,再依序加上显示列表中的项目,直到到达目标实体为止。您也可以使用别名_root 来指向目前阶层中的最高时间轴。例如,影片片段california 中指向影片片段oregon 的动作可以使用绝对路径_root.westCoast.oregon

Flash Player 会于阶层 0 加载要开启第一份文件。您必须为其他所有文件指定要加载的阶层编号。当您使用 ActionScript 中的绝对参照来参考加载的文件时,请使用_levelX格式,其中X是文件加载的阶层编号。例如,在 Flash Player 中开启的第一份文件叫做_level0;加载阶层 3 的文件则叫做_level3

若要在不同阶层的文件之间通讯,请务必使用目标路径中的阶层名称。下列范例显示portland 实体如何处理位在叫做georgia 的影片片段上的atlanta 实体 (georgia oregon 在同个阶层)

_level5.georgia.atlanta

您可以使用_root 别名指向目前阶层中的主时间轴。对主时间轴来说,当影片片段同时将_level0 当成目标时,_root 别名就代表_level0。对于加载_level5 的文件来说,当影片片段同时将 level 5 当成目标时,_root 则相当于_level5。例如,如果影片片段southcarolina florida 同样加载到相同的阶层中时,则从实体southcarolina 呼叫的动作会使用下列绝对路径来指定实体florida 为目标:

_root.eastCoast.florida

相对路径

相对路径是以控制时间轴和目标时间轴之间的关系做为基础。相对路径只能在自己的 Flash Player 阶层内为目标寻址。举例来说,当_level0 _level5 上的时间轴做为目标时,您无法在动作指令中使用相对路径。

在相对路径中,请使用关键词this 来指向目前阶层中的目前时间轴;请使用别名_parent 代表目前时间轴的父时间轴。若要在相同 Flash Player 阶层内的影片片段阶层架构中向上移动一个阶层,请重复使用_parent 别名。例如,_parent._parent 会控制影片片段在阶层架构中向上移两个阶层。任一 Flash Player 阶层上的最高时间轴都是唯一具有未定义之_parent 值的时间轴。

在实体charleston 的时间轴内的动作 ( 位在southcarolina 的下一个层级中) 可使用下列目标路径做为实体southcarolina 的目标:

_parent

若要从charleston 中的动作,指定实体eastCoast ( 往上一个层级) 做为目标,您可以使用下面的相对路径:

_parent._parent

若要透过charleston 的时间轴上的动作,指定实体atlanta 做为目标,您可以使用下面的相对路径:

_parent._parent.georgia.atlanta

相对路径对于重复使用 Script 来说非常有用。例如,您可以在某段影片片段上附加下列一段「把父辈放大 150%」的 Script

onClipEvent (load) {_parent._xscale = 150;_parent._yscale = 150; }

然后可以将这段 Script 附加到任何影片片段实体上,重复使用。备注:Flash Lite 1.0 1.1 仅支持将 Script 附加到按钮,并不支持将其附加到影片片段。不管您使用的是绝对还是相对路径,都必须找出时间轴中的变量,或是带有点 (.) 且后面接着变量或属性名称的对象属性。例

如,下面的语句会将实体form 中的变量name 设为值"Gilbert"

_root.form.name = "Gilbert";

使用绝对及相对目标路径

您可以使用 ActionScript,将讯息从一个时间轴传送到另一个时间轴。包含动作的时间轴称为「控制时间轴」,收到动作的时间轴称为「目标时间轴」。举例来说,某个时间轴的最后一个影格中可能有一个动作,要求另一个时间轴开始播放。若要指向某个目标时间轴,您必须使用目标路径,指出此影片片段在显示列表中的位置。

以下范例显示一份名为 westCoast 之文件的阶层关系,它在阶层 0 上含有三段影片片段:californiaoregon,和washington。每一段影片片段又依序包含了两段影片片段。

_level0 westCoast

california
sanfrancisco
bakersfield

oregon
portland
ashland

washington
olympia
ellensburg

就像在网站服务器上一样,Flash 中的每个时间轴有两种寻址方法:使用绝对路径或相对路径。实体的绝对路径一定是从阶层名称开始的完整路径,不论呼叫动作的时间轴为何;例如,实体california 的绝对路径是_level0.westCoast.california。从不同位置进行呼叫时,相对路径将会有所差异;例如,从sanfrancisco california 的相对路径是 _parent,但从portland 开始的路径则是_parent._parent.california

更多帮助主题

383 页「建构 FLA n」第384 页「在应用程序中组织 ActionScript

 

指定目标路径

若要控制影片片段、加载的 SWF 文件或按钮,您必须指定目标路径。您可以手动指定目标路径,或是使用「插入目标路径」对话框或藉由建立可产生目标路径的表达式来指定。若要指定影片片段或按钮的目标路径,您必须先指定影片片段或按钮的实体名称。加载的文件不需要实体名称,因为会使用其阶层编号做为实体名称 ( 例如,_level5)

将实体名称指定至影片片段或按钮

1 在舞台上选取影片片段或按钮。2 在「属性」检测器中输入实体名称。

使用插入目标路径对话框来指定目标路径

1 选取要指定动作的影片片段、影格或按钮实体。这会成为控制时间轴。2 在「动作」面板中 ( 「窗口 > 动作」),前往左侧的「动作工具箱」,然后选取需要目标路径的动作或方法。3 在要插入目标路径的 Script 中,单击参数方块或位置。4 单击「Script」窗格上方的「插入目标路径」按钮。5 选取目标路径模式为「绝对」或「相对」。6 在「插入目标路径」显示列表中选取影片片段,然后单击「确定」。

手动指定目标路径

1 选取要指定动作的影片片段、影格或按钮实体。这会成为控制时间轴。2 在「动作」面板中 ( 「窗口 > 动作」),前往左侧的「动作工具箱」,然后选取需要目标路径的动作或方法。3 在要插入目标路径的 Script 中,单击参数方块或位置。4 在「动作」面板中输入绝对或相对目标路径。

将表达式当做目标路径使用

1 选取要指定动作的影片片段、影格或按钮实体。这会成为控制时间轴。2 在「动作」面板中 ( 「窗口 > 动作」),前往左侧的「动作工具箱」,然后选取需要目标路径的动作或方法。3 请执行下列其中一项:

                        •              在参数方块中输入运算结果为目标路径的表达式。

                        请单击鼠标按键,在 Script 中置入插入点。接着,请在「动作工具箱」的「函数」类别中连双击targetPath 函数。targetPath 函数会将影片片段的参考转换为字符串。

                        请单击鼠标按键,在 Script 中置入插入点。接着,请在「动作工具箱」的「函数」类别中选取eval 函数。eval 函数会将字符串转换为用来呼叫play 等方法的影片片段参考。

 

下面的 Script 会将值 1 指定给变数i。该 Script 接着便会使用eval 函数来建立影片片段实体的参考,并将其指定给变量x。变量x 现在为影片片段实体的参考,可以对 MovieClip 对象的方法进行呼叫。

i = 1;
x = eval("mc"+i);
x.play();
// this is equivalent to mc1.play();

您也可以使用eval 函数直接呼叫方法,如下范例所示:

eval("mc" + i).play();