您好 我想在运行时更改皮肤特定部分的可见性,但我不知道如何达到它。
答案 0 :(得分:2)
这取决于你想隐藏/揭示的部分。如果您正在讨论一些特定于皮肤的图形(在主机组件中未表示为[SkinPart]
声明),那么您可以实现两种策略:
hostComponent
。要更改已知声明的皮肤部件的可见性,您可以使用上面列出的策略的修改。在第二个策略中,您不需要声明皮肤部分:)
答案 1 :(得分:2)
“达到它”是什么意思?
组件类和外观类都使用该组件的名称引用外观部件。我通常在运行时隐藏皮肤部分是使用这个过程:
1)创建一个新的皮肤状态;像“skinPartHidden”这样的东西
2)在Component类中;创建一个skinPartVisible属性。当属性值改变时;调用invalidateSkinState()方法。这将导致getCurrentSkinState()在下一个渲染事件期间运行。
3)在get getCurrentSkinState()方法中;使用该属性的值将外观状态设置为新的skinPartHidden外观状态。像他这样的东西:
if(skinPartVisible == false){
return "skinPartHidden";
}
4)皮肤类;使用MXML状态语法基于外观状态切换外观部件的可见性。像这样:
visible.skinPartHidden="true"