添加滤镜

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本,要求 Flash CS3 或更高版本

如果补间动画的目标对象包含滤镜,则这些滤镜是使用 Motion 类的 initFilters()addFilterPropertyArray() 方法添加的。

初始化滤镜数组

initFilters() 方法将初始化滤镜。该方法的第一个参数是应用于显示对象的所有滤镜的完全限定类名称的数组。此滤镜名称数组是从 Flash 中的补间动画滤镜列表生成的。在您的脚本副本中,您可以在此数组中删除或添加 flash.filters 包中的任何滤镜。下面的调用初始化目标显示对象的滤镜列表。该调用应用 DropShadowFilterGlowFilterBevelFilter,并将列表复制到 Motion 对象中的每个关键帧。
__motion_Box.initFilters(["flash.filters.DropShadowFilter", "flash.filters.GlowFilter", "flash.filters.BevelFilter"], [0, 0, 0]);

添加滤镜

addFilterPropertyArray() 方法使用以下参数描述已初始化滤镜的属性:
  1. 该方法的第一个参数通过索引标识滤镜。该索引指示滤镜名称在滤镜类名称数组中的位置,该数组是在前一个 initFilters() 调用中传递的。

  2. 该方法的第二个参数是在每个关键帧中为该滤镜存储的滤镜属性。

  3. 该方法的第三个参数是指定滤镜属性的值。

在进行了前一个 initFilters() 调用后,随后的 addFilterPropertyArray() 调用将值 5 分配给 DropShadowFilterblurXblurY 属性。DropShadowFilter 是已初始化的滤镜数组中的第一个(索引为 0)项:
__motion_Box.addFilterPropertyArray(0, "blurX", [5]); 
__motion_Box.addFilterPropertyArray(0, "blurY", [5]);
接下来的三个调用向已初始化滤镜数组中的第二个项(索引为 1)GlowFilter 的 quality、alpha 和 color 属性赋值。
__motion_Box.addFilterPropertyArray(1, "quality", [BitmapFilterQuality.LOW]); 
__motion_Box.addFilterPropertyArray(1, "alpha", [1.00]); 
__motion_Box.addFilterPropertyArray(1, "color", [0xff0000]);
接下来的四个调用向已初始化滤镜数组的第三个项(索引为 2)BevelFiltershadowAlphashadowColorhighlightAlphahighlightColor 赋值。
__motion_Box.addFilterPropertyArray(2, "shadowAlpha", [1.00]); 
__motion_Box.addFilterPropertyArray(2, "shadowColor", [0x000000]); 
__motion_Box.addFilterPropertyArray(2, "highlightAlpha", [1.00]); 
__motion_Box.addFilterPropertyArray(2, "highlightColor", [0xffffff]);

使用 ColorMatrixFilter 调整颜色

在初始化 ColorMatrixFilter 之后,您可以设置相应的 AdjustColor 属性来调整补间显示对象的亮度、对比度、饱和度和色相。通常,在 Flash 中创建补间动画时,会应用 AdjustColor 滤镜;您可以在 ActionScript 的副本中对其进行微调。下面的示例在显示对象移动期间转换该对象的色相和饱和度。

__motion_Leaf_1.initFilters(["flash.filters.ColorMatrix"], [0], -1, -1); 
__motion_Leaf_1.addFilterPropertyArray(0, "adjustColorBrightness", [0], -1, -1); 
__motion_Leaf_1.addFilterPropertyArray(0, "adjustColorContrast", [0], -1, -1); 
__motion_Leaf_1.addFilterPropertyArray(0, "adjustColorSaturation", 
    [ 
        0,-0.589039,1.17808,-1.76712,-2.35616,-2.9452,-3.53424,-4.12328, 
        -4.71232,-5.30136,-5.89041, 6.47945,-7.06849,-7.65753,-8.24657, 
        -8.83561,-9.42465,-10.0137,-10.6027,-11.1918,11.7808,-12.3699, 
        -12.9589,-13.5479,-14.137,-14.726,-15.3151,-15.9041,-16.4931, 
        17.0822,-17.6712,-18.2603,-18.8493,-19.4383,-20.0274,-20.6164, 
        -21.2055,-21.7945,22.3836,-22.9726,-23.5616,-24.1507,-24.7397, 
        -25.3288,-25.9178,-26.5068,-27.0959,27.6849,-28.274,-28.863,-29.452, 
        -30.0411,-30.6301,-31.2192,-31.8082,-32.3973,32.9863,-33.5753, 
        -34.1644,-34.7534,-35.3425,-35.9315,-36.5205,-37.1096,-37.6986, 
        38.2877,-38.8767,-39.4657,-40.0548,-40.6438,-41.2329,-41.8219, 
        -42.411,-43 
    ], 
    -1, -1); 
__motion_Leaf_1.addFilterPropertyArray(0, "adjustColorHue", 
    [ 
        0,0.677418,1.35484,2.03226,2.70967,3.38709,4.06451,4.74193,5.41935, 
        6.09677,6.77419,7.45161,8.12903,8.80645,9.48387,10.1613,10.8387,11.5161, 
        12.1935,12.871,13.5484,14.2258,14.9032,15.5806,16.2581,16.9355,17.6129, 
        18.2903,18.9677,19.6452,20.3226,21,22.4286,23.8571,25.2857,26.7143,28.1429, 
        29.5714,31,32.4286,33.8571,35.2857,36.7143,38.1429,39.5714,41,42.4286,43.8571, 
        45.2857,46.7143,48.1429,49.5714,51,54,57,60,63,66,69,72,75,78,81,84,87, 
        90,93,96,99,102,105,108,111,114 
    ], 
    -1, -1);