将实例设定为目标

如想让某一实例在 SWF 文件中工作,需要将此实例设定为目标并告诉此实例执行什么操作,例如为它指定一个动作或更改其属性。通常需要通过创建一个目标路径来定义该实例在 SWF 文件中的位置(例如,在哪个时间轴上或嵌套在哪个实例中)。请记住,您已经为 FLA 文件中的许多实例分配了实例名称,然后向 FLA 文件中添加了使用这些实例名称的代码。在执行这些操作时,您应将此特定实例设定为目标并告诉此实例应执行什么操作(例如,移动播放头或打开 Web 页)。有关对象和属性的详细信息,请参阅"Object 数据类型"

将一个实例设定为目标:

  1. 选择"文件">"新建",然后选择"Flash 文档"。
  2. 选择"文件">"另存为",将文件命名为 target.fla
  3. 使用椭圆工具在舞台上绘制一个形状。绘制一个任意大小和颜色的椭圆。
  4. 使用选择工具在舞台上选择该椭圆。

    提示

    请记着选择笔触和填充(如果需要)。

  5. 选择"修改">"转换为元件",选择"影片剪辑"选项,然后单击"确定"创建一个元件。
  6. 在舞台上选择影片剪辑,并在"属性"检查器中为它指定一个实例名称 myClip
  7. 插入一个新的图层,将其重命名为 actions
  8. 在 actions 图层的第 1 帧中添加以下 ActionScript:
    myClip._xscale = 50;
    

    此行代码在舞台上将 myClip 实例设定为目标。ActionScript 将该实例缩小到其原始宽度的一半。因为 ActionScript 与影片剪辑元件在同一个时间轴上,所以只需使用实例名称就可以将实例设定为目标。如果该实例在不同的时间轴上或嵌套在另一个实例内,则需要相应地修改目标路径。

将嵌套实例设定为目标

还可以将嵌套于其它实例中的实例设定为目标。或许,您需要将另一个影片剪辑实例放置到将实例设定为目标练习中的 myClip 实例内。您还可以使用 ActionScript 将嵌套的实例设定为目标。在继续进行下面的练习之前,需要完成将实例设定为目标中的练习,然后按照以下步骤将嵌套的实例设定为目标。

将嵌套实例设定为目标:

  1. 打开在将实例设定为目标的过程中创建的 target.fla,将其重命名为 target2.fla
  2. 在舞台上双击 myClip 实例。
  3. 选择椭圆工具,在 myClip 实例内部绘制另一个椭圆。
  4. 选择所绘新形状,然后选择"修改">"转换为元件"。
  5. 选择"影片剪辑"选项,并单击"确定"。
  6. 选择新实例,然后在"属性"检查器的"实例名称"文本框中键入 myOtherClip
  7. 单击编辑栏中场景 1 以返回主时间轴。
  8. 在 actions 图层的第 1 帧中添加以下 ActionScript:
    myClip.myOtherClip._xscale = 50; 
    

    此 ActionScript 将 myOtherClip 实例的大小调整为其当前宽度的 50%。因为 target.fla 文件修改了 myClip 实例的 _xscale 属性,而且 myOtherClip 是一个嵌套元件,所以您会发现 myOtherClip 将变成其原始宽度的 25%。

如果使用具有自己的时间轴的嵌套影片剪辑,可以使用类似于以下代码片断的代码操作嵌套实例的时间轴中的播放头:

myClip.nestedClip.gotoAndPlay(15);
myClip.someOtherClip.gotoAndStop("tweenIn");

请注意,您操作的剪辑(例如 nestedClip)恰好在执行动作之前出现。在下面几部分中您会发现这一趋势。

您不限于访问舞台上实例的预定义的方法和属性,如以上示例中所示;您还可以在影片剪辑中设置变量 ― 如下面的代码中所示,此代码在 starClip 影片剪辑中设置了一个变量:

starClip.speed = 1.1;
starClip.gravity = 0.8;

如果在 starClip 影片剪辑实例中以前就存在 speed 或 gravity 变量,则以前的值在设置新值时立即将被覆盖。可以向 starClip 影片剪辑添加新属性,因为 MovieClip 类是使用 dynamic 关键字定义的。dynamic 关键字指定基于指定类(本例中为 MovieClip)的对象可以在运行时添加和访问动态属性。有关 dynamic 语句的详细信息,请参阅《ActionScript 2.0 语言参考》中的 dynamic 语句。