Today I read a very long tread about designers in serarch of some solution for this old issue. Since I didn't found an answer that satisfies me and since is really easy avoiding this problem I wrote this simple function:
function addButtonEvent(btn:DisplayObject):void { MovieClip(btn).buttonMode = true; MovieClip(btn).mouseChildren = false; var square:Sprite = new Sprite(); square.graphics.beginFill(0x000000); var p = btn.getRect(btn.parent); square.graphics.drawRect(p.x, p.y, p.width, p.height); btn.parent.addChild(square); square.visible = false; MovieClip(btn).hitArea = square; btn.addEventListener (MouseEvent.MOUSE_OVER, blinkOver); btn.addEventListener (MouseEvent.MOUSE_OUT, blinkOut); } function blinkOver(e:MouseEvent = null) { Tweener.addTween(e.target, { scaleX:1.08, scaleY:1.08,time:.3 } ); } private function blinkOut(e:MouseEvent = null) { Tweener.addTween(e.target, {scaleX:1, scaleY:1,time:.1 } ); }
As you can see the tip is to create a static rectangle over the MovieClip and using it as hitArea.
You just need to call the addButtonEvent function in this way:
addButtonEvent(myMovieclip);
(super simple!!!) Note that for the scaling easing I used Caurina tweener