我想淡入淡出并使用colorTransform方法进行对象。
当我将colorTransform应用到我的对象时,它确实会淡出但不会淡入。 首先,我将bitmapData的alpha设置为0(对于淡入效果)。应用colorTransform后它什么都不做。没有消失。 否则,当我将bitmapData的alpha设置为100并让它淡出时,它就可以工作。
我不知道错误可能在哪里,所以是否有人可以帮我解决这个问题?或者你知道另一种实现同一目标的方法吗?非常感谢你的帮助。
BTW:我的对象(tempScore)不是显示对象。它被布置在画布上。
这是colorTransform我的对象的函数:
private function setAlpha(setMode:int, bmd:BitmapData):BitmapData
{
var rec:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height);
var ct:ColorTransform = new ColorTransform();
if (setMode == 1) {
ct.alphaMultiplier = .95;
} else if (setMode == 2) {
ct.alphaMultiplier = 1.05;
} else if (setMode == 3) {
ct.alphaMultiplier = 0;
} else if (setMode == 4) {
ct.alphaMultiplier = .5;
} else if (setMode == 5) {
ct.alphaMultiplier = 1;
}
bmd.colorTransform(rec, ct);
return bmd;
}
这是我想要更改alpha的代码,但淡入不起作用:
setAlpha(2, tempScore.bitmapData);
这是我将bitmapData的alpha设置为0的代码:
rec = new Rectangle(0, 0, $textWidth, $textHeight);
ct = new ColorTransform();
ct.alphaMultiplier = 0;
tempScore.bitmapData.colorTransform(rec, ct);
答案 0 :(得分:2)
应用于BitmapData
的过滤器是“破坏性的”,如果你让它的alpha值下降到零,你将会丢失所有图像信息,因此没有什么可以淡入。
将过滤器应用于显示Bitmap
的{{1}}容器。