发一个阴影类
[code]class shadow{
/**
*
* @param dest_mc 将要产生阴影的MC
* @param source_mc 包含图片的MC源
* @param start_alpha 初始透明度
* @param end_alpha 结束透明度
* @param end_ratio 最大为255,也就是到图片的最下面,如果是127则到图片的中间
*/
static public function init(dest_mc, source_mc,start_alpha,end_alpha,end_ratio)
{
if (start_alpha == undefined)
{
start_alpha = 100;
}
if (end_alpha == undefined)
{
end_alpha = 0;
}
if (end_ratio == undefined || end_ratio > 255)
{
end_ratio = 127;
}
//先获取一份拷贝
var bmp:BitmapData = new BitmapData(source_mc._width, source_mc._height);
bmp.draw(source_mc);
var rnd = Math.round(Math.random() * 100);
var loader_mc:MovieClip = dest_mc.createEmptyMovieClip("loader_mc"+rnd, dest_mc.getNextHighestDepth());
loader_mc.attachBitmap(bmp, 2, "always", true);
//翻转图片
loader_mc._yscale *= -1;
loader_mc._y += loader_mc._height;
loader_mc.cacheAsBitmap = true;
//创建mask
var mask_mc:MovieClip = dest_mc.createEmptyMovieClip("mask_mc"+rnd, dest_mc.getNextHighestDepth());
var tmp_matrix:Matrix = new Matrix();
tmp_matrix.createGradientBox(source_mc._width, source_mc._height, Math.PI/2, 0, 0);
mask_mc.beginGradientFill("linear",[0xff0000,0xff0000],[start_alpha,end_alpha],[0,end_ratio],tmp_matrix);
mask_mc.lineTo(source_mc._width, 0);
mask_mc.lineTo(source_mc._width, source_mc._height);
mask_mc.lineTo(0, source_mc._height);
mask_mc.lineTo(0, 0);
mask_mc.endFill();
mask_mc.cacheAsBitmap = true;
//设置遮罩
loader_mc.setMask(mask_mc);
}
}[/code]
[b]使用方法[/b]
[code]var mcl:MovieClipLoader = new MovieClipLoader();
var mcl_obj:Object = new Object();
var em:MovieClip = _root.createEmptyMovieClip("em",11);
var loader:MovieClip = _root.createEmptyMovieClip("loader",10);
mcl_obj.onLoadInit = function(mc){
//em为产生阴影的MC,mc为包含图片的MC,50是起始透明度,0是结束透明度,127表示作用范围为图片高的一半,最大为255
shadow.init(em,mc,50,0,127);
em._y = mc._height;
}
mcl.addListener(mcl_obj);
mcl.loadClip("http://www.live-my-life-with-yuyi.com/blog/crop.jpg",loader);[/code]
[b][url=http://www.live-my-life-with-yuyi.com/misc/demo/shadow/]Demo[/url][/b] 很有用的一个类~~从此动态倒入的图像不再孤单 收藏
发现版主会每隔一段时间都发一个有用的工具哦~:D 谢谢,收了。 :D 拿来主义~ 很有用``收~:)
不过上面的类中还没导入BitmapData跟Matrix
import flash.display.BitmapData;
import flash.geom.Matrix; 弱弱的问下,这个怎么用的?谁可以给提供下源文件,在线等ing…… 万分感谢楼主 -00-
页:
[1]