如何解决Flex 4更改皮肤部位值
| 你好 我想在运行时更改皮肤特定部位的可见性,但我不知道该如何达到。解决方法
“达到目标”是什么意思?
组件类和皮肤类都通过使用该组件的名称来引用皮肤部分。我通常在运行时如何隐藏皮肤部分是使用此过程:
1)创建一个新的皮肤状态;类似于“ skinPartHidden”
2)在Component类中;创建一个skinPartVisible属性。当属性值改变时;调用invalidateSkinState()方法。这将导致getCurrentSkinState()在下一个渲染事件期间运行。
3)在get getCurrentSkinState()方法中;使用该属性的值将皮肤状态设置为新的skinPartHidden皮肤状态。像他这样的东西:
if(skinPartVisible == false){
return \"skinPartHidden\";
}
4)在皮肤课上;使用MXML状态语法根据皮肤状态切换皮肤零件的可见性。像这样:
visible.skinPartHidden=\"true\"
,这取决于您要隐藏/显示哪个部分。如果您要谈论某些特定于皮肤的图形(在主机组件中未表示为“ 2”声明),则可以实现两种策略:
您的隐藏/显示逻辑只是视图的一部分,而没有组件功能。在这种情况下,您应该扩展皮肤并将隐藏/显示逻辑放置在那里。您可以使用data3 binding属性的数据绑定。
您的隐藏/显示逻辑添加了一些新功能。扩展您的组件并引入一些新的视图状态,或者在其中声明目标外观部件,并通过某些属性更改来更改组件中的可见性。在这种情况下,您可能也必须更换皮肤。
要更改已知声明的皮肤部分的可见性,可以使用上面列出的策略的修改。在第二种策略中,您不需要声明皮肤部分:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。