AS3.0中的显示编程(二)-- DisplayObject类
2010-10-10 07:24:20 来源:WEB开发网假如被遮罩的对象是一个TextFiled对象,那么遮罩的形状只能是一个矩形框,即使你设置了一个圆形作为遮罩,也会自动转化为矩形框。
如果你一定要实现特殊形状的遮罩效果,需要用StaticText(静态文本)来实现。
3.Alpha通道遮罩
如果遮罩和被遮罩的显示对象都设置了位图缓存(cacheAsBitmap = true),那么就可以使用透明遮罩。通俗的说,就是对遮罩应用一个透镜,然后效果体现在被遮罩的显示对象上。我抄袭个官方的例子吧,大家可以直接复制代码,自己懒得写了。
// 加载图像
var loader:Loader = new Loader();
var url:URLRequest = new URLRequest("http://www.helpexamples.com/flash/
images/image1.jpg");
loader.load(url);
this.addChild(loader);
// 创建 Sprite并绘制渐变椭圆
var oval:Sprite = new Sprite();
var colors:Array = [0x000000, 0x000000];
var alphas:Array = [1, 0];
var ratios:Array = [0, 255];
var matrix:Matrix = new Matrix();
matrix.createGradientBox(200, 100, 0, -100, -50);
oval.graphics.beginGradientFill(GradientType.RADIAL,
colors,
alphas,
ratios,
matrix);
oval.graphics.drawEllipse(-100, -50, 200, 100);
oval.graphics.endFill();
this.addChild(oval);
// 对于两个显示对象都设置 cacheAsBitmap = true。
loader.cacheAsBitmap = true;
oval.cacheAsBitmap = true;
// 将椭圆设置为加载器的遮罩
loader.mask = oval;
// 使椭圆可拖动。
oval.startDrag(true);
更多精彩
赞助商链接