2007/01/30 | 图书摘录十一:对图像应用不同的混合模式
类别(编程资源) | 评论(0) | 阅读(71) | 发表于 13:12

对图像应用不同的混合模式:
1. 创建一个新的 Flash 文档,并将它保存为 blendmodes.fla。
2. 将一个 ComboBox 组件实例拖动到舞台上,并为其指定实例名称 blendMode_cb。
3. 将下面的 ActionScript 添加到时间轴中的第 1 帧:
var blendMode_dp:Array = new Array();
blendMode_dp.push({data:"add", label:"add"});
blendMode_dp.push({data:"alpha", label:"alpha"});
blendMode_dp.push({data:"darken", label:"darken"});
blendMode_dp.push({data:"difference", label:"difference"});
blendMode_dp.push({data:"erase", label:"erase"});
blendMode_dp.push({data:"hardlight", label:"hardlight"});
blendMode_dp.push({data:"invert", label:"invert"});
blendMode_dp.push({data:"layer", label:"layer"});
blendMode_dp.push({data:"lighten", label:"lighten"});
blendMode_dp.push({data:"multiply", label:"multiply"});
blendMode_dp.push({data:"normal", label:"normal"});
blendMode_dp.push({data:"overlay", label:"overlay"});
blendMode_dp.push({data:"screen", label:"screen"});
blendMode_dp.push({data:"subtract", label:"subtract"});
blendMode_cb.dataProvider = blendMode_dp;
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
var blendModeClip:MovieClip = target_mc.createEmptyMovieClip("blendModeType_mc", 20);
with (blendModeClip) {
beginFill(0x999999);
moveTo(0, 0);
lineTo(target_mc._width / 2, 0);
lineTo(target_mc._width / 2, target_mc._height);
lineTo(0, target_mc._height);
lineTo(0, 0);
endFill();
}
target_mc._x = (Stage.width - target_mc._width) / 2;
target_mc._y = (Stage.height - target_mc._height) / 2;
blendModeClip.blendMode = blendMode_cb.value;
};
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);
function cbListener(eventObj:Object):Void {
img_mc.blendModeType_mc.blendMode = eventObj.target.value;
}
blendMode_cb.addEventListener("change", cbListener);
此 ActionScript 代码以每种类型的混合模式来填充组合框,因此用户可在动态加载的图
像中查看每种效果。创建了一个侦听器对象,用于和 MovieClipLoader 实例一起使用。
该侦听器对象定义一个事件侦听器 onLoadInit,当图像完全下载并被 Flash 初始化时,
将调用该侦听器。该事件侦听器将创建一个名为 blendModeType_mc 的新影片剪辑,并
使用 Drawing API 在图像的左半部分上绘制一个矩形形状。然后,当前为 ComboBox
实例选定的混合模式将应用于 blendModeType_mc 影片剪辑。
其余代码设置了 MovieClipLoader 实例,该实例负责将指定的图像加载到舞台上的影
片剪辑中。最后,为 blendMode_cb ComboBox 实例定义一个侦听器,当从 ComboBox
实例中选择一个新项时,该实例便将应用选定的混合模式。
4. 选择“控制” >“测试影片”来测试该文档。

注:高阶例程,适合参考。

0

评论Comments