【发布时间】:2009-03-15 14:44:33
【问题描述】:
我想在flex中设置一个按钮的图标。
默认语法如下。
myButton.setStyle("icon", iconClass);
iconClass 通常是一个嵌入对象。
但我想做的是,使用标准 Sprite 或 MovieClip(我在运行时找到)作为图标。
这可能吗?有人做过吗?
谢谢!
【问题讨论】:
标签: apache-flex actionscript-3 button icons
我想在flex中设置一个按钮的图标。
默认语法如下。
myButton.setStyle("icon", iconClass);
iconClass 通常是一个嵌入对象。
但我想做的是,使用标准 Sprite 或 MovieClip(我在运行时找到)作为图标。
这可能吗?有人做过吗?
谢谢!
【问题讨论】:
标签: apache-flex actionscript-3 button icons
这实际上是 Flex 框架在样式方面的致命缺陷。当 Flex 获取图标的样式值时,它假定它的类型为 Class,并且实例化对象的类型为 DisplayObject(或派生的)。只需对代码(mx:Image 等类对其源属性所做的)进行微不足道的更改,即可测试样式的值是否为 DisplayObject 类型,如果是,则跳过当前执行的构造步骤。
如果您不想更改 Flex 框架源,Ben 的解决方案是最好的解决方案。就个人而言,我最终会对特定组件进行猴子修补以接受实例化的DisplayObjects 而不是Classes. 一些组件比其他组件更难修补。
Doug McCune explaining how to monkey patch the Flex framework.
【讨论】:
找到了可能的解决方案。 http://blog.benstucki.net/?p=42 之前会给出这个并报告。
【讨论】: