【问题标题】:Access SimpleButton children访问 SimpleButton 子项
【发布时间】:2010-11-08 15:35:07
【问题描述】:

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

我选择了图标,并“转换为符号”,并给了它一个实例名称。这对我想访问的大多数其他东西都有效,但为此目的失败了。我已经在调试器中寻找过它,但我就是无法访问该对象。

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

【问题讨论】:

  • 我现在发现,当我将按钮设为 MovieClip 而不是按钮时,我可以访问子 MovieClip。但是,这会使我的按钮一遍又一遍地闪烁其所有状态。我想这不是要走的路。
  • 是的,您需要使用 MovieClip.Stop() 来防止这种情况。但是,如果你得到我的回答中的状态,你仍然可以得到孩子。您只需要将状态转换为 DisplayObjectContainer。

标签: actionscript-3 button flash-cs4


【解决方案1】:

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

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

编辑: 要仅更改背景颜色,最好的解决方案是简单地将背景作为DisplayObject 包含在状态中,然后更改它。但是您必须监听状态变化,以保持颜色变化。

或者,如果您的需求足够通用,您也许可以找到一个组件来做到这一点。

【讨论】:

  • 是的,我已经找到了所有这些,以及类似的作品。但是,不幸的是,他们不允许我只更改按钮的一部分。
  • 好的,我更新了我的答案。但实际上并没有一个简单的方法。
【解决方案2】:

这里的问题是 SimpleButton 真的不是为这种行为而设计的类。我建议您编写自己的快速小类来模拟 SimpleButton 的行为,但允许您更改孩子的外观。像这样在全局类路径中编写您自己的类也会使您未来的项目更容易。

【讨论】:

  • 我也在做类似的事情,这不是一个快速的小班。内置的 SimpleButton 可以处理很多在您自己的代码中很容易遗漏的边缘情况。
猜你喜欢
  • 1970-01-01
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 2010-11-27
  • 2010-11-03
  • 1970-01-01
相关资源
最近更新 更多