public class GlowTween
{
private var _target:InteractiveObject;
private var _color:uint;
private var _toggle:Boolean;
private var _blur:Number;
private var evt:Event;
public function GlowTween(target:InteractiveObject, color:uint=0xFFFFFF)
{
_target=target;
_color=color;
_toggle=true;
_blur=2;
startGlowHandler(evt);
target.addEventListener(MouseEvent.ROLL_OUT, startGlowHandler);
}
private function removeGlow(target:InteractiveObject):void{
_target=target;
target.addEventListener(MouseEvent.ROLL_OUT, stopGlowHandler);
}
private function startGlowHandler(evt:Event):void
{
_target.addEventListener(Event.ENTER_FRAME, blinkHandler, false, 0, true);
}
private function stopGlowHandler(evt:MouseEvent):void
{
_target.removeEventListener(Event.ENTER_FRAME, blinkHandler);
_target.filters=null;
}
private function blinkHandler(evt:Event):void
{
if (_blur >= 20)
_toggle=false;
else if (_blur <= 2)
_toggle=true;
_toggle ? _blur++ : _blur--;
var glow:GlowFilter=new GlowFilter(_color, 1, _blur, _blur, 2, 3);
_target.filters=[glow];
}
}
}
用法:发光new GlowTween(组件id,发光颜色)如new GlowTween(id,0xFFF000)
不发光var glow:GlowTween = new GlowTween();glow.removeGlow(组件id);