我建议你创建一些包装类AppButton
(或者可能是你已经有一个,因为你必须通过标签功能的一些调整大小)用方法setSkin(skin:MovieClip)
(其中皮肤是MovieClip
从库)和width
和height
覆盖的制定者,所以你可以在这里实现调用方法arrange()
中的皮肤调整大小逻辑,每次调用宽度或高度都会改变。儿童与其他影片剪辑(集中在你的情况下边框),所以不要使用scale9Grid属性的孔皮肤,但集大小直接与集儿童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
类,并通过自定义皮肤分析和排列扩展它们在每个项目。
这实际上听起来像是一种非常聪明的方式来处理按钮和组件。我一定会在未来实施这个。目前我被卡住了一个糟糕的API,但我正在努力改写它。 – Glitcher