在运行时使用Sprite设置Flex按钮的图标

时间:2009-03-15 14:44:33

标签: flex actionscript-3 button icons

我想在flex中设置按钮的图标。

默认语法如下。

myButton.setStyle("icon", iconClass);

和iconClass通常是一个嵌入对象。

但我想要做的是,使用标准的 Sprite或MovieClip (我在运行时找到)作为图标。

这可能吗?有没有人这样做过?

谢谢!

2 个答案:

答案 0 :(得分:2)

这实际上是Flex在框架设计方面的致命缺陷。当Flex抓取图标的样式值时,它假定它是Class类型,并且实例化的对象将是DisplayObject类型(或派生的)。这是代码的一个微不足道的变化(像mx:Image这样的类为它们的源属性做)来测试样式的值是否为DisplayObject类型,如果是,只需跳过它当前的构造步骤进行。

如果您不想更改Flex框架源,Ben的解决方案是最好的。就个人而言,我最终修补特定组件以接受实例化的DisplayObjects而不是Classes.。有些组件比其他组件更难以修补。

Doug McCune explaining how to monkey patch the Flex framework.

答案 1 :(得分:-1)

找到了可能的解决方案。 http://blog.benstucki.net/?p=42将在此之前提出并报告。