Flex 4更改皮肤部分值

发布于 2024-11-09 21:09:38 字数 40 浏览 0 评论 0原文

你好 我想在运行时更改皮肤特定部分的可见性,但我不知道如何实现它。

Hello
I would like to change the visibility of specific part of the skin at run time, but i dont know how to reach it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

献世佛 2024-11-16 21:09:38

你所说的“达到”是什么意思?

组件类和外观类都通过使用该组件的名称来引用外观部件。我通常在运行时隐藏皮肤部分的方法是使用以下过程:

1)创建一个新的皮肤状态;类似于“skinPartHidden”

2) 在 Component 类中;创建 SkinPartVisible 属性。当属性值改变时;调用 invalidateSkinState() 方法。这将导致 getCurrentSkinState() 在下一个渲染事件期间运行。

3)在get getCurrentSkinState()方法中;使用该属性的值将皮肤状态设置为新的 SkinPartHidden 皮肤状态。像他的一样:

if(skinPartVisible == false){
 return "skinPartHidden";
}

4)在皮肤课上;使用 MXML 状态语法根据外观状态切换外观部件的可见性。像这样的东西:

visible.skinPartHidden="true"

What do you mean by "reach it"?

Both the component class and the skin class have a reference to the skin part by using that component's name. How I would usually hide a skin part at run time is using this process:

1) Create a new Skin State; something like "skinPartHidden"

2) In the Component class; create a skinPartVisible property. When the property value is changed; call the invalidateSkinState() method. This will cause getCurrentSkinState() to run during the next render event.

3) In the get getCurrentSkinState() method; use that property's value to set the skin state to your new skinPartHidden skin state. Something like his:

if(skinPartVisible == false){
 return "skinPartHidden";
}

4) In the skin class; toggle the visibility of the skin Part based on the skin state using the MXML state Syntax. Something like this:

visible.skinPartHidden="true"

傾旎 2024-11-16 21:09:38

这取决于您想隐藏/显示哪一部分。如果您正在谈论一些特定于皮肤的图形(不表示为主机组件中的 [SkinPart] 声明),那么您可以实现两种策略:

  • 您的隐藏/显示逻辑只是视图的一部分但没有组件功能。在这种情况下,您应该扩展您的皮肤并在那里放置隐藏/显示逻辑。您可以使用hostComponent 属性的数据绑定。
  • 您的隐藏/显示逻辑添加了一些新功能。扩展您的组件并引入一些新的视图状态或在那里声明目标皮肤部分,并在某些属性更改时更改组件中的可见性。在这种情况下,您可能也必须更换皮肤。

要更改已知声明的皮肤部分的可见性,您可以使用上面列出的策略的修改。在第二种策略中,您不需要声明皮肤部分:)

It depends on what part do you want to hide/reveal. If you're talking about some skin specific graphics (which is not represented as [SkinPart] declaration in a host component) then you can implement two strategies:

  • Your hide/reveal logic is just a part of view but no the component functionality. In this case you should extend your skin and place hide/reveal logic there. You can use data binding of properties of hostComponent.
  • Your hide/reveal logic adds some new functionality. Extend your component and introduce some new view state or declare target skin part there and change visibility in a component on some property change. In this case it is possible you'll have to change skin too.

For changing visibility of known declared skin part you can use the modifications of strategies listed above. In the second strategy you needn't to declare skin part :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文