我建议你创建一些包装类AppButton
(或者你可能已经有一个,因为你有一些通过标签功能调整大小的方法)setSkin(skin:MovieClip)
(其中皮肤是你MovieClip
从库中获得的)和覆盖的设置器width
and height
,所以你可以在这里实现皮肤调整大小的逻辑arrange()
每次更改宽度或高度时调用的方法。
皮肤可能很复杂 - 与儿童中的其他影片剪辑(在您的情况下为焦点边框),所以不要使用 scale9Grid 作为孔皮肤,但也可以使用 set scale9grid 直接为孩子设置大小,所以您的arrange
方法可以像那:
private function arrange():void
{
var child:DisplayObject;
for(var i:int = 0; i < numChildren; i++)
{
child = getChildAt(i);
child.width = width;
child.height = height;
}
}
在项目中为按钮皮肤制作一种皮肤格式也是值得的,因此您可以为所有按钮使用一个包装器。
稍后您可以为此添加更多功能AppButton
- 在鼠标事件上切换视图状态、设置文本标签、动画皮肤等等。
这种方法为我工作了很多年,我们有基础ToggleButton
和LabelButton extends ToggleButton
类,并通过自定义皮肤解析和排列在每个项目中扩展它们。