所以我有一個Tile類,它帶有一個sprite變量,用於保存圖塊的圖形。在鼠標懸停時,我對圖形進行ColorTransform。似乎工作正常。在老鼠身上,我試着改回它。納達。事實上,兩次翻轉同一個瓷磚會增加alpha,直到最終完全消失。不知道如何解決它。這是我的代碼。在翻轉時更改Alpha;沒有改變鼠標退出?
在瓷磚類:
this.addEventListener(MouseEvent.MOUSE_OVER, thisMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, thisMouseOut);
public function thisMouseOver(e:Event):void {
tileGraphic.bitmapData = setAlpha(tileGraphic.bitmapData);
}
public function thisMouseOut(e:Event):void {
tileGraphic.bitmapData = resetAlpha(tileGraphic.bitmapData);
}
private function setAlpha(bmd:BitmapData):BitmapData {
var rec:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height);
var ct:ColorTransform = new ColorTransform();
ct.alphaMultiplier = .65;
bmd.colorTransform(rec, ct);
return bmd;
} //end function setAlpha
private function resetAlpha(bmd:BitmapData):BitmapData {
var rec:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height);
var ct:ColorTransform = new ColorTransform();
ct.alphaMultiplier = 1;
bmd.colorTransform(rec, ct);
return bmd;
} //end function resetAlpha
任何人都可以點我在正確的方向?謝謝!
您是否試過1.54作爲alphaMultiplier進行重置? – codingbuddha 2013-05-07 07:10:34
我試了一下,沒有什麼不同。如果我是正確的,我相信'alphaMultiplier'只能在0到1的範圍內工作。如果你設置它高於1,它會回到1. – Lapys 2013-05-07 07:14:19
Hm ....讓我試試這個:D – codingbuddha 2013-05-07 07:17:57