Flash Flex 4更改蒙皮零件值

Flash Flex 4更改蒙皮零件值,flash,apache-flex,actionscript-3,visibility,skin,Flash,Apache Flex,Actionscript 3,Visibility,Skin,你好 我想在运行时更改皮肤特定部分的可见性,但我不知道如何到达它。这取决于您要隐藏/显示的部分。如果您正在谈论一些特定于皮肤的图形(在主机组件中不表示为[SkinPart]声明),那么您可以实现两种策略: 隐藏/显示逻辑只是视图的一部分,而不是组件功能。在这种情况下,您应该扩展皮肤并将隐藏/显示逻辑放在那里。您可以使用主机组件属性的数据绑定 隐藏/显示逻辑添加了一些新功能。扩展组件并引入一些新的视图状态,或在其中声明目标蒙皮零件,并在某些属性更改时更改组件中的可见性。在这种情况下,您也可能需要

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

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

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

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

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

  • 隐藏/显示逻辑只是视图的一部分,而不是组件功能。在这种情况下,您应该扩展皮肤并将隐藏/显示逻辑放在那里。您可以使用
    主机组件
    属性的数据绑定
  • 隐藏/显示逻辑添加了一些新功能。扩展组件并引入一些新的视图状态,或在其中声明目标蒙皮零件,并在某些属性更改时更改组件中的可见性。在这种情况下,您也可能需要更换皮肤
要更改已知已声明蒙皮零件的可见性,可以使用上面列出的策略修改。在第二种策略中,您不需要声明皮肤部分:)

您所说的“达到它”是什么意思

component类和skin类都通过使用该组件的名称来引用蒙皮零件。我通常在运行时隐藏蒙皮部分的方式是使用以下过程:

1) 创建新的皮肤状态;类似“隐藏的皮肤”

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

3) 在get getCurrentSkinState()方法中;使用该属性的值将蒙皮状态设置为新的skinPartHidden蒙皮状态。有点像他的:

if(skinPartVisible == false){
 return "skinPartHidden";
}
4) 皮肤类;使用MXML状态语法根据蒙皮状态切换蒙皮零件的可见性。大概是这样的:

visible.skinPartHidden=“true”

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

component类和skin类都通过使用该组件的名称来引用蒙皮零件。我通常在运行时隐藏蒙皮部分的方式是使用以下过程:

1) 创建新的皮肤状态;类似“隐藏的皮肤”

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

3) 在get getCurrentSkinState()方法中;使用该属性的值将蒙皮状态设置为新的skinPartHidden蒙皮状态。有点像他的:

if(skinPartVisible == false){
 return "skinPartHidden";
}
4) 皮肤类;使用MXML状态语法根据蒙皮状态切换蒙皮零件的可见性。大概是这样的:


visible.skinPartHidden=“true”

在构建MXML皮肤时;Adobe建议不要扩展皮肤。工具不支持它;包括Flash Catalyst和Flash Builder。很抱歉用不太清楚的方式表达。作为扩展皮肤,我的意思是复制/粘贴原始皮肤,然后修改它的方法:)谢谢康斯坦丁的友好回答,你也告诉我为了完成一些事情我必须阅读的内容。谢谢。在构建MXML皮肤时;Adobe建议不要扩展皮肤。工具不支持它;包括Flash Catalyst和Flash Builder。很抱歉用不太清楚的方式表达。作为扩展皮肤,我的意思是复制/粘贴原始皮肤,然后修改它的方法:)谢谢康斯坦丁的友好回答,你也告诉我为了完成一些事情我必须阅读的内容。谢谢,非常感谢杰弗里·豪斯。你的解决方案真的让我找到了我一直在寻找的答案。事情现在看起来更清楚了:)再次感谢你。非常感谢杰弗里·豪斯。你的解决方案真的让我找到了我一直在寻找的答案。事情现在看起来更清楚了:)再次谢谢你。