使用 call() 函数来创建函数

不能像在 Flash Player 5 及更高版本中那样在 Flash Lite 中定义或调用自定义函数。但可以使用 call() ActionScript 函数来执行位于时间轴中任一帧上的代码。这种方法可以将常用的代码封装在单一的位置,使其易于维护。

call() 函数将帧号或帧标签作为参数。例如,以下 ActionScript 调用位于标签为 moveUp 的帧上的代码:

call("moveUp");

call() 函数以同步方式操作;所指定帧上的所有 ActionScript 都执行完毕之后,call() 函数调用之后的任何 ActionScript 才会执行。

调用另一帧上的 ActionScript:

  1. 在一个新建 Flash 文档中,在第 10 帧上插入一个关键帧。

  2. 在新建的关键帧处于选中状态下,打开"动作"面板("窗口">"动作"),然后键入以下代码:
    trace("Hello from frame 10");
    
  3. 选择第 1 帧上的关键帧,然后在"动作"面板中键入以下代码:
    stop();
    call(10);
    

    这段代码会将播放头停在第 1 帧上,然后调用第 10 帧上的代码。

  4. 在模拟器中测试应用程序,并打开"输出"面板("窗口">"输出")。

    您应该可以看到"Hello from frame 10"显示在"输出"面板中。

也可以调用位于另一时间轴(如影片剪辑的时间轴)上的代码。要执行代码,请指定影片剪辑实例名称,后面跟随一个冒号,然后指定帧编号或帧标签。例如,以下 ActionScript 调用位于名为 callClip 的影片剪辑实例中的标签为 moveUp 的帧上的代码:

call("callClip:moveUp");

此方法通常用于创建调用剪辑函数剪辑,即仅用于封装常用代码的影片剪辑。调用剪辑包含用于要创建的每个函数的关键帧。通常需要根据用途对每个关键帧进行标记。Macromedia 还建议为每个新建关键帧创建一个新图层,并为每个图层指定与分配给该关键帧的帧标签相同的名称。

下图显示了一个调用剪辑示例的时间轴。调用剪辑的第一个关键帧始终包含一个 stop() 动作,这可确保播放头不会连续地在其时间轴中的各帧间循环。随后的关键帧包含每个"函数"的代码。每个函数关键帧都带有标签,以标识所执行的任务。要更容易地编辑和查看调用剪辑,每个函数关键帧通常都插入在一个单独的图层上。

以下过程说明了如何创建和使用调用剪辑。

要创建和使用调用剪辑:

  1. 在 Flash Professional 8 中,通过 Flash Lite 1.1 Symbian Series 60 文档模板来创建新文档。
  2. 选择"插入">"新建元件"。
  3. 在"创建新元件"对话框的"名称"文本框中,键入 Call Clip,然后单击"确定"。

    即会在编辑模式中打开该影片剪辑。

  4. 单击"时间轴"窗口上的"添加新图层"按钮两次,以插入两个新图层。

    将顶部图层命名为 Actions,将第二个图层命名为 function1,将第三个图层命名为 function2

  5. 在 function1 图层的第 2 帧上插入一个关键帧,并在 function2 图层的第 3 帧上插入另一个关键帧,如下图所示:

  6. 选择 Actions 图层上的关键帧,并打开"动作"面板。
  7. 向"动作"面板中添加一个 stop() 动作。
  8. 选择 function1 图层的第 2 帧上的关键帧,并执行以下操作:
    1. 在"属性"检查器中,在"帧标签"文本框中键入 function1

    2. 在"动作"面板("窗口">"动作")中,键入以下代码:
      trace("function1 was called.");
      
  9. 选择 function2 图层的第 3 帧上的关键帧,并执行以下操作:
    1. 在"属性"检查器中,在"帧标签"文本框中键入 function2

    2. 在"动作"面板("窗口">"动作")中,键入以下代码:
      trace("function2 was called.");
      
  10. 按 Ctrl+E 组合键 (Windows) 或 Command+E 组合键 (Macintosh),返回到主时间轴。
  11. 通过选择"视图">"工作区",将文档视图设置为在舞台周围包括工作区。

    因为调用剪辑不需要对用户可见,因此可以将其放置在工作区中。

  12. 打开"库"面板("窗口">"库"),并将"调用剪辑"元件拖到舞台周围的工作区中。

    调用剪辑不包含任何可视元素,因此它在舞台上显示为一个小圆圈,表示影片剪辑的注册点。

    提示

    要使调用剪辑在舞台上更易于识别,请向调用剪辑的时间轴中的第一个关键帧添加某些文本或其它可视元素。

  13. 在"属性"检查器中,在"实例名称"文本框中键入 callClip
  14. 在时间轴中,选择名为 ActionScript 的图层上的第 1 帧。
  15. 在"动作"面板中,输入以下代码:
    call("callClip:function1");
    call("callClip:function2");
    
  16. 在模拟器中测试应用程序("控制">"测试影片")。

    您应在"输出"面板中看到以下文本:

    function1 was called.
    function2 was called.