Если Вы не воспроизвели ошибку, Ваша "фиксация" - ничто лучше, чем предположение.
В прошлом я с большим успехом использовал следующее:
Я использовал это для создания моментальных снимков различных компонентов диаграмм Flex для использования в файлах PDF, созданных на стороне сервера.
Я почти уверен, что вы можете использовать метод draw () в BitmapData без вашего компонента в DisplayList.
Например, используйте его, когда мне нужно изменить изображения, которые я загружаю класс загрузчика. В обработчике инициализации я создаю экземпляр BitmapData и рисую Bitmap из свойства loadInfo.content, затем copyPixels () или что-то еще, что мне нужно для изменения загруженного изображения
Так много о UIComponent Макет
может быть привязан к его контексту. Это особенно верно для многих его производных (например, HBox), поскольку гибкость макета привязана к его родительскому размеру и количеству братьев и сестер, разделяющих его родительское пространство.
Кроме того, Flex может быть реальным ] боль получить визуально обновить. Часто критические функции рендеринга не выполняются синхронно ... есть callLater
, callLater2
и другие хитрые подходы, которые заставляют работать с автоматическими свойствами макета UIComponents
] сильная головная боль. Даже вызов validateNow
или updateDisplayList
не может гарантировать, что макет будет правильным в текущем кадре (вместо нескольких кадров в будущем).
Я предлагаю вам лучшее. можно не использовать UIComponent , а попробовать использовать Sprite или другой.
Ваш способ прикрепить его, но сделать его невидимым ( alpha = 0
, mouseEnabled = false
, mouseChildren = false
) вполне приемлемо. Вы должны прослушать обратный вызов FlexEvent.CREATION_COMPLETE
, прежде чем убедитесь, что он правильно построен. Затем вы можете bitmapData.draw
его, а затем удалить со сцены. Если вы должны использовать UIComponents, то я не знаю лучшего способа.
Лучшее, что вы можете сделать, это не использовать UIComponent , а попробовать использовать Sprite или что-то еще.
Ваш способ прикрепить его, но сделать его невидимым ( alpha = 0
, mouseEnabled = false
, mouseChildren = false
) вполне приемлемо. Вы должны прослушать обратный вызов FlexEvent.CREATION_COMPLETE
, прежде чем убедитесь, что он правильно построен. Затем вы можете bitmapData.draw
его, а затем удалить со сцены. Если вы должны использовать UIComponents, то я не знаю лучшего способа.
Лучшее, что вы можете сделать, это не использовать UIComponent , а попробовать использовать Sprite или что-то еще.
Ваш способ прикрепить его, но сделать его невидимым ( alpha = 0
, mouseEnabled = false
, mouseChildren = false
) вполне приемлемо. Вы должны прослушать обратный вызов FlexEvent.CREATION_COMPLETE
, прежде чем убедитесь, что он правильно построен. Затем вы можете bitmapData.draw
его, а затем удалить со сцены. Если вы должны использовать UIComponents, то я не знаю лучшего способа.
FlexEvent.CREATION_COMPLETE
, прежде чем убедитесь, что он правильно построен. Затем вы можете bitmapData.draw
его, а затем удалить со сцены. Если вы должны использовать UIComponents, то я не знаю лучшего способа. Вы должны прослушать обратный вызов FlexEvent.CREATION_COMPLETE
, прежде чем убедитесь, что он правильно построен. Затем вы можете bitmapData.draw
его, а затем удалить со сцены. Если вы должны использовать UIComponents, то я не знаю лучшего способа.