2007/01/30 | 图书摘录十:在图像中应用滤镜
类别(编程资源) | 评论(0) | 阅读(72) | 发表于 13:09

将置换图滤镜应用于图像:  
1. 创建一个新的 Flash 文档,并将它保存为 displacement.fla。
2. 将下面的 ActionScript 添加到时间轴中的第 1 帧:
// 导入类。
import flash.filters.DisplacementMapFilter;
import flash.display.BitmapData;
import flash.geom.Point;
// 创建剪辑和嵌套剪辑。
var shapeClip:MovieClip = this.createEmptyMovieClip("shapeClip", 1);
shapeClip.createEmptyMovieClip("holderClip", 1);
// 加载 JPEG。
var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.loadClip("http://www.helpexamples.com/flash/images/image4.jpg", shapeClip.holderClip);
// 创建 BitmapData 实例。
var perlinBmp:BitmapData = new BitmapData(Stage.width, Stage.height);
perlinBmp.perlinNoise(Stage.width, Stage.height, 10, Math.round(Math.random() * 100000), false, true, 1, false);
// 创建并应用置换图滤镜。
var displacementMap:DisplacementMapFilter = new DisplacementMapFilter(perlinBmp, new Point(0, 0), 1, 1, 100, 100, "color", 1);

shapeClip.filters = [displacementMap];
// 创建并应用侦听器。
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function():Void {
  perlinBmp.perlinNoise(Stage.width, Stage.height, 10, Math.round(Math.random() * 100000), false, true, 1, false);
  shapeClip.filters = [displacementMap];
}
Mouse.addListener(mouseListener);
此代码示例由五个逻辑部分组成。第一部分导入示例必需的类。

第二个代码块创建一个嵌套的影片剪辑并从远程服务器加载一个 JPEG 图像。

第三个代码块创建一个名为perlinBmp 的新 BitmapData 实例,该实例与舞台尺寸大小相同。perlinBmp 实例包含
Perlin 杂点效果的结果,稍后会将该实例用作置换图滤镜的参数。

第四个代码块将创建置换图滤镜效果并将其应用于前面创建的动态加载的图像。

第五个也是最后一个代码块为鼠标创建一个侦听器,只要用户移动鼠标指针,就将重新生成置换图滤镜使用的Perlin 杂点。
3. 选择“控制” >“测试影片”对该 Flash 文档进行测试。

注:类的高级应用参考例程。

0

评论Comments