使用 Drawing API 方法和实现脚本动画

可以将 Drawing API 与 Tween 和 TransitionManager 类结合使用以创建一些出色的动画结果,并且只需编写少量 ActionScript。

下面的过程加载 JPEG 图像并动态遮罩图像,以便在加载图像后通过补间图像遮罩慢慢揭开图像。

为动态遮罩添加动画效果:

  1. 创建一个新的 Flash 文档,并将它保存为 dynmask.fla
  2. 将下面的 ActionScript 添加到时间轴中的第 1 帧:
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    var mclListener:Object = new Object();
    mclListener.onLoadInit = function(target_mc:MovieClip) {
        target_mc._visible = false;
        // 在舞台上将图像居中。
        target_mc._x = (Stage.width - target_mc._width) / 2;
        target_mc._y = (Stage.height - target_mc._height) / 2;
        var maskClip:MovieClip = target_mc.createEmptyMovieClip("mask_mc", 20);
        with (maskClip) {
            // 绘制与加载的图像大小相同的遮罩。
            beginFill(0xFF00FF, 100);
            moveTo(0, 0);
            lineTo(target_mc._width, 0);
            lineTo(target_mc._width, target_mc._height);
            lineTo(0, target_mc._height);
            lineTo(0, 0);
            endFill();
        }
        target_mc.setMask(maskClip);
        target_mc._visible = true;
        var mask_tween:Object = new Tween(maskClip, "_yscale", Strong.easeOut, 0, 100, 2, true);
    };
    this.createEmptyMovieClip("img_mc", 10);
    var img_mcl:MovieClipLoader = new MovieClipLoader();
    img_mcl.addListener(mclListener);
    img_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", img_mc);
    

    此代码示例导入 Tween 类和 easing 包中的每个类。然后,它创建作为 MovieClipLoader 实例的侦听器对象的对象,该实例将在后面部分的代码中创建。侦听器对象定义一个事件侦听器 onLoadInit,它使动态加载的 JPEG 图像在舞台上居中。代码重新定位图像后,将在 target_mc 影片剪辑(其中包含动态加载的 JPEG 图像)中创建新的影片剪辑实例。Drawing API 代码将在这一新的影片剪辑中绘制一个尺寸与 JPEG 图像相同的矩形。新的影片剪辑通过调用 MovieClip.setMask() 方法来遮罩 JPEG 图像。绘制并设置遮罩后,遮罩将使用 Tween 类添加动画效果,从而使图像慢慢显露出来。

  3. 保存 Flash 文档,然后选择"控制">"测试影片"对该 SWF 文件进行测试。

注意

若要为前面示例中的 _alpha 而不是 _yscale 添加动画效果,请直接对 target_mc 进行补间,而不要遮罩影片剪辑。

在硬盘上的 Samples 文件夹中可以找到范例源文件 drawingapi.fla,该文件演示了如何在 Flash 应用程序中使用 Drawing API。