2011-08-31 56 views
0

我想使用colorTransform方法淡入和淡出对象。淡入对象不起作用 - 帮助

当我将colorTransform应用于我的对象时,它确实会淡化这个东西但不会淡入。 首先,我将bitmapData的alpha设置为0(用于淡入效果)。应用colorTransform后,它什么都不做。没有淡入 否则,当我将bitmapData的alpha设置为100并让它淡出时,它就可以工作。

我不知道错误发生在哪里,有没有人可以帮我解决这个问题?或者你知道另一种实现相同目标的方法吗?非常感谢您的帮助。

BTW:我的对象(tempScore)是没有显示对象。这是blitted在画布上。

这是必须的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; 
} 

这是我想改变阿尔法但在淡出不起作用的代码:

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); 

回答

2

应用于的过滤器是“破坏性的”,如果你让其alpha下去为零你将失去所有的图像信息,与它一起,所以没有什么褪色回来。

应用滤镜的Bitmap容器显示BitmapData来代替。 OMG!

+0

OMG!非常感谢你。我不知道。是否有可用的bitmapData的无损滤波器? – drpelz

+0

问题解决。我使用TweenLite并更改了对象。现在这是一个精灵。 TweenLite现在正在运行。 – drpelz