【问题标题】:Flash, actionscript, flex, add mx.controls.* component to flash.display.SpriteFlash、actionscript、flex,将 mx.controls.* 组件添加到 flash.display.Sprite
【发布时间】:2013-04-10 14:06:26
【问题描述】:
我正在处理我的项目,需要在闪存中创建温度计组件(组件将显示当前温度值)。所以我决定使用 Sprite (flash.display.Sprite) 组件作为包装器并创建这些子组件:
- flash.display.Bitmap、BitmapData - 背景、温度计图像
- flash.text.TextField - 文本(带单位的当前温度值)
- flash.display.Shape - 温度计条
接下来我需要添加一些闪烁的文本(缺失值),最好使用mx.contols.Label(或火花标签)组件(支持 AnimateColor)。但是当我将新的标签组件添加到包装器时,添加的标签不会显示。所以我想知道是否可以在Sprite中添加mx.controls.*组件或者推荐什么解决方案。
【问题讨论】:
标签:
flash
apache-flex
sprite
flex-mx
【解决方案1】:
mx 组件必须在 Flex 框架的上下文中使用。如果您将 Flex 组件添加到非 Flex 容器(例如 Sprite),那么您正在使用 Flex 上下文之外的组件,而 Flex 框架类(例如 LayoutManager)将不知道调用此类方法作为 measure()、createChildren()、updateDisplayList() 或 commitProperties()。
如果这是您想要做的;那么没有出现的原因是因为组件没有通过它Flex Component LifeCycle;因此没有任何东西可以显示。
如果您在 Flash Pro 中构建某些东西,或者在 Flash Builder 中使用仅 ActionScript 的项目,那么您可能没有使用 Flex 框架,我不希望该组件能够正常工作。但是,如果是这种情况,我希望您会看到由于缺少依赖项而导致的编译错误。