Flash, actionscript, flex, добавьте компонент mx.controls.* К flash.display.Sprite.
Я работаю над своим проектом и мне нужно создать компонент термометра во флэш-памяти (компонент будет отображать текущее значение температуры). Поэтому я решил использовать компонент Sprite (flash.display.Sprite) в качестве оболочки и создал следующие дочерние элементы:
- flash.display.Bitmap, BitmapData - фон, изображение термометра
- flash.text.TextField - текст (текущее значение температуры с единицей измерения)
- flash.display.Shape - термометр
Затем мне нужно добавить мигающий текст (отсутствует значение), и лучше всего будет использовать mx.contols.Label
(или Spark Label) компонент (поддержка AnimateColor). Но когда я добавляю новый компонент Label в оболочку, добавленная метка не отображается. Поэтому я хотел бы знать, можно ли добавить mx.controls.*
компоненты для Sprite или какое решение рекомендуется.
1 ответ
Компоненты mx должны использоваться в контексте Flex Framework. Если вы добавляете компонент Flex в не-Flex контейнер, такой как Sprite, то вы используете компонент вне контекста Flex, и классы Flex Framework, такие как LayoutManager, не будут знать, как вызывать такие методы. как measure(), createChildren(), updateDisplayList() или commitProperties().
ЕСЛИ это то, что вы пытаетесь сделать; тогда причина, по которой ничего не появляется, состоит в том, что компонент не прошел свой жизненный цикл Flex Component; таким образом, создавая нечего отображать.
Если вы создаете что-то во Flash Pro или с помощью только ActionScript проекта во Flash Builder, то вы, вероятно, не используете Flex Framework, и я не ожидаю, что компонент будет работать. Однако, если бы это было так, я бы ожидал, что вы увидите ошибки компиляции из-за отсутствия зависимостей.