有一种简单的方法可以将buttonMode设置为true来应用我的应用程序中的所有按钮吗? 我想创建一个自定义组件,它扩展了s:Button并将buttonMode设置为true,但我想知道是否有更简单的CSS方式。
提前致谢
答案 0 :(得分:4)
正如韦德所说,皮肤是一个很好的方法。虽然在皮肤上设置buttomMode =“true”将无法按照您想要的方式工作,但您可以从皮肤设置主机按钮的buttonMode,如下所示:
<fx:Script>
<![CDATA[
import spark.components.Button;
override protected function commitProperties():void
{
super.commitProperties();
hostComponent.buttonMode = true;
}
]]>
</fx:Script>
答案 1 :(得分:1)
你可以用皮肤和css做到这一点。将默认ButtonSkin复制到自定义外观类,并在外观上设置buttonMode =“true”。 (如果这不起作用,您可以尝试在创建完成时设置hostComponent.buttonMode = true。)然后将s:Button的外观设置为css中的自定义外观。
答案 2 :(得分:0)
不幸的是,我认为您没有任何其他选项可以创建自定义按钮。
你可以修补原始的Button组件,但我不建议这个实践。
答案 3 :(得分:0)
您可以尝试编写一个在运行时遍历所有对象的爬虫,或类似的东西:
stage.addEventListener(Event.ADDED_TO_STAGE, parseItem, true);
然后:
function parseItem(e:Event):void{
if (e.target is Button)
e.target.buttonMode = true;
}
添加到舞台的每个项目都应该经历此事件(即使只将其父级添加到显示列表中)。
当然,在将任何内容添加到舞台之前,您必须添加此事件侦听器!
答案 4 :(得分:0)
我还建议Maurycy的方法,或者你可以在项目中修补Button类。这甚至可能更容易,并且不会导致性能损失。