我遇到类似FLEX: dialog not display immediately的问题。代码如下:
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时按住”对话框出现。由于FileReference,我无法使用callLater()。
只是为了好的衡量,加载屏幕会在调用fr.save()时出现保存对话框。
有什么想法吗?
干杯!
答案 0 :(得分:0)
您正在此功能中添加孩子。您是否正在对loadingScreen进行任何其他工作,例如调整大小?还是定位呢?最常见的是在updateDisplayList()中完成。你用的是什么容器?
您确定您的两个孩子的Z顺序是否正确?您可以使用swapChildren方法交换孩子