Добавить ребенка сразу во Flex 3 - PullRequest
0 голосов
/ 20 июля 2010

У меня проблема, похожая на FLEX: диалоговое окно не отображается сразу . Код следует:

private function saveBitmap(event:ContextMenuEvent):void
{
    loadingScreen.visible = true;
    loadingScreen.appLoadingText.text = "Preparing bitmap...";
    addChild(loadingScreen);

    validateNow();

    var bmpd:BitmapData = new BitmapData(canv.width, canv.height);
    bmpd.draw(canv);

    var fr:FileReference = new FileReference();
    fr.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, removeLoadingScreen);
    fr.addEventListener(Event.CANCEL, removeLoadingScreen);
    var png:PNGEncoder = new PNGEncoder();
    var iba:ByteArray = png.encode(bmpd);
    fr.save(iba, "export.png"); 
}

По сути, bmpd.draw и / или png.encode работают медленно, поэтому я хотел бы, чтобы появилось приятное диалоговое окно «Пожалуйста, подождите, пока мы готовим ваш png». Я не могу использовать callLater () из-за FileReference.

И просто для примера: экран загрузки появляется одновременно с диалоговым окном сохранения после вызова функции fr.save ().

Есть идеи?

Ура!

1 Ответ

0 голосов
/ 20 июля 2010

Вы добавляете ребенка в эту функцию. Вы выполняете какую-либо другую работу с загрузочным экраном, например, определяете его размер? Или это позиционирование? Чаще всего это делается в updateDisplayList (). Какой контейнер вы используете?

Вы уверены, что Z-порядок ваших двоих детей правильный? Вы можете поменять местами детей с помощью метода swapChildren

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...