我只是想创建一个渐变蒙版 - 它是通过AS3代码动态生成的 - 一个对象(以下例子中的五边形),我只是,不能! [The SWF file of what I've tried.]
代码工作正常,除非忽略动态创建的Sprite
的alpha渐变用作渐变蒙版(它被视为实体蒙版),而确切的代码确认“舞台上”创建的对象(通过用户界面)作为渐变掩码!
我认为运行时不能将对象缓存为位图,因而无知!但是,我坚持要做到这一点!所以,请对此有所了解,提前非常感谢任何帮助:)
var X:Number = 100, Y:Number = 35, W:Number = 350, H:Number = 150;
var mat:Matrix = new Matrix();
mat.createGradientBox(W, H, 0, X, Y);
var gradientMask:Sprite = new Sprite();
gradientMask.graphics.beginGradientFill(GradientType.LINEAR, [0, 0], [1, 0], [0, 255], mat);
gradientMask.graphics.drawRect(X, Y, W, H);
gradientMask.graphics.endFill();
pentagon1.cacheAsBitmap = true;
pentagon2.cacheAsBitmap = true;
onStageGradient.cacheAsBitmap = true;
gradientMask.cacheAsBitmap = true;
pentagon1.mask = gradientMask;
pentagon2.mask = onStageGradient;
stage.addEventListener(Event.ENTER_FRAME, _onEnterFrame);
function _onEnterFrame(e:Event):void {
pentagon1.x += 7;
pentagon2.x += 7;
if (pentagon1.x > 500) {
pentagon1.x = 0;
pentagon2.x = 0;
}
}
<小时/>