Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 在Flex3中立即添加子项_Apache Flex_Flex3 - Fatal编程技术网

Apache flex 在Flex3中立即添加子项

Apache flex 在Flex3中立即添加子项,apache-flex,flex3,Apache Flex,Flex3,我有一个类似的问题。代码如下: private function saveBitmap(event:ContextMenuEvent):void { loadingScreen.visible = true; loadingScreen.appLoadingText.text = "Preparing bitmap..."; addChild(loadingScreen); validateNow(); var bmpd:BitmapData = ne

我有一个类似的问题。代码如下:

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()

为了更好地衡量,加载屏幕会在调用fr.save()时显示save对话框的同时出现

有什么想法吗


干杯

您正在将子项添加到此函数中。您是否正在对加载屏幕进行其他工作,例如调整大小?还是定位?最常见的做法是在updateDisplayList()中完成。你用的是什么容器


你确定你两个孩子的Z顺序正确吗?您可以使用以下方法交换子项

加载屏幕在XML中的宽度和高度都自动调整为100%,我希望在调用validateNow()时可以这样做。我之前尝试过将loadingCanvas保存在这个对象中(它是Canvas的一个子类),并只是轻推可见性,但它仍然没有出现。我假设z顺序是正确的,因为加载屏幕最终会出现,但直到PNGEncoder完成。你是指XML还是MXML?如果在MXML中创建组件,则不应使用addChild()方法;因为Flex编译器可以神奇地将MXML转换为ActionSCript,其中包括将所有子级添加到相应的容器中。validateNow()应强制运行updateDisplayList()。但是,您正在添加加载屏幕的容器是否会自动调整子容器的大小和位置?我想你需要分享更多的代码。我是说MXML,对不起。我不太确定您需要多少代码,所以请准备好:我应该添加,上面的代码在viewport/common.as中,加载屏幕是viewport/LoadingScreen.mxml。感谢您迄今为止的帮助。我只需要足够的代码,以便我可以复制并粘贴到新的应用程序文件中,它将演示您遇到的问题;不多不少。抱歉,我没有时间“反向工程”您的整个项目来尝试诊断此问题。