2009-07-07 161 views
3

我有一个Flash .fla文件,它具有SimpleButton。该SimpleButton基本上是一个按钮状的形状,上面有一个图标(比如说它是一个“暂停”sybol)。我想以编程方式更改该图标的颜色,但似乎无法从AS访问它。访问SimpleButton儿童

我选择了图标,做了“转换为符号”,并给它一个实例名称。这对我想要访问的大多数其他事物都有效,但是对于这个目的而言它失败了。我在调试器中查找过它,但我无法访问该对象。

那么,这样做的方式是什么?

+0

我现在发现,当我使按钮成为MovieClip而不是按钮时,我可以访问子MovieClip。但是,这使得我的按钮一遍又一遍地闪烁着它的状态。我想这不是要走的路。 – Sietse 2009-07-07 11:31:06

+0

是的,您需要使用MovieClip.Stop()来防止这种情况发生。但是如果你在我的回答中得到了状态,你仍然可以得到孩子。您只需将状态转换为DisplayObjectContainer即可。 – 2009-07-07 14:39:43

回答

2

如果您正在寻找按钮的状态,您可以在这里找到它们:SimpleButton.upStateSimpleButton.overStateSimpleButton.downState

您可以通过操纵transform属性的coulorTransform来更改颜色。在这里看到: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/ColorTransform.html

编辑: 只改变背景颜色,最好的解决办法是正确的简单有背景载于美国DisplayObject,然后改变这种状况。但是你必须听取状态变化,以保持颜色的变化。

另外,如果你的需求足够通用,你也许可以找到一个组件。

+0

是的,我发现了所有这些,以及那种作品。但不幸的是,他们不允许我改变按钮的一部分。 – Sietse 2009-07-07 11:08:49

0

这里的问题是,SimpleButton实际上不是为这种类型的行为而制定的类。我会建议编写自己的快速小类,模拟SimpleButton的行为,但允许您更改子项的外观。在全局类路径中编写像这样的类可以让您的未来项目更容易。