Большая часть макета UIComponent
может быть привязана к его контексту. Это особенно верно для многих его производных (например, HBox), поскольку текучесть макета привязана к размеру его родителя и количеству братьев и сестер, разделяющих пространство его родителей.
Кроме того, Flex может быть реальной болью, чтобы получить визуальное обновление. Часто критические функции рендеринга не выполняются синхронно ... существуют callLater
, callLater2
и другие хакерские подходы, которые делают работу с автоматическими магическими свойствами макета UIComponents
главной головной болью. Даже вызов validateNow
или updateDisplayList
не может гарантировать, что макет будет правильным для текущего кадра (вместо нескольких кадров в будущем).
Я предлагаю лучшее, что вы можете сделать, это не использовать UIComponent и попробовать использовать Sprite или другой.
Ваш подход прикрепить его, но сделать его невидимым (alpha = 0
, mouseEnabled = false
, mouseChildren = false
) вполне приличный. Вы должны прослушать обратный вызов FlexEvent.CREATION_COMPLETE
, прежде чем будете уверены, что он правильно спланирован. Затем вы можете bitmapData.draw
это и затем удалить его со сцены. Если вы должны использовать UIComponents, то я не знаю лучшего способа.