Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
Actionscript 3 如何使用AdobeFlex编写多个文件_Actionscript 3_Flash_Flex4.5_Mxml - Fatal编程技术网

Actionscript 3 如何使用AdobeFlex编写多个文件

Actionscript 3 如何使用AdobeFlex编写多个文件,actionscript-3,flash,flex4.5,mxml,Actionscript 3,Flash,Flex4.5,Mxml,我有一个字符串数组,其中每个对象都有逗号分隔符和新行分隔符。现在我想将这些字符串对象写入多个CSV文件。但我只能编写一个CSV文件,如下所示:- /** * callback method for exportCollection, results are in format of Map<String, String> **/ protected function exportListResultHandler(e

我有一个字符串数组,其中每个对象都有逗号分隔符和新行分隔符。现在我想将这些字符串对象写入多个CSV文件。但我只能编写一个CSV文件,如下所示:-

        /**
         * callback method for exportCollection, results are in format of Map<String, String>
         **/
        protected function exportListResultHandler(event:ResultEvent):void {
            if (event.result != null )
            {
                for (var key:* in event.result) {
                    var value:String=event.result[key];
                    var fileName:String=key;
                    exportStringToFile(value.toString(), fileName);
                }
            }
        }

        private function exportStringToFile(stringToExport:String, filename:String=null):void
        {               
            //file refernce for import/export functionality. 
            var fileRef:FileReference = new FileReference(); 

            try{
                fileRef.addEventListener(Event.COMPLETE, finishUpload);            
                fileRef.addEventListener(IOErrorEvent.IO_ERROR, handleError);
                fileRef.save(stringToExport, filename);                
            }catch (error:Error){
                logger.error("Unable to save file. Error: ", error);  

        }
/**
*exportCollection的回调方法,结果的格式为Map
**/
受保护的函数exportListResultHandler(事件:ResultEvent):无效{
如果(event.result!=null)
{
for(变量键:*在event.result中){
变量值:String=event.result[key];
var fileName:String=key;
exportStringToFile(value.toString(),文件名);
}
}
}
私有函数exportStringToFile(stringToExport:String,文件名:String=null):void
{               
//导入/导出功能的文件引用。
var fileRef:FileReference=newfilereference();
试一试{
fileRef.addEventListener(Event.COMPLETE,finishUpload);
fileRef.addEventListener(IOErrorEvent.IO_ERROR,handleError);
fileRef.save(stringToExport,文件名);
}捕获(错误:错误){
logger.error(“无法保存文件。错误:”,error);
}
我的现有代码不允许我使用flash.filesystem包中的文件类。即使是FileReference数组也帮不了我。我想在一个位置保存多个文件


我是Adobe flex和flash builder新手,任何帮助都会很好。如果您正在创建AIR应用程序,非常感谢。如果是,为什么不使用FileStream将字符串保存到文件

var stream:FileStream = new FileStream;
stream.open (targetPath, FileMode.WRITE);
stream.writeUTFBytes (s);
stream.close();
使用FileReference保存文件将打开对话框(安全性问题),并且如果您想保存多个文件,这将非常麻烦


但如果您为非空中应用程序/浏览器(web)工作基于应用程序的另一个选项是,您可以使用服务器端代码保存所有文件,然后将其下载到客户端。当然,如果要创建AIR应用程序,此选项将使您的服务器执行额外的任务,特别是在高流量情况下。如果是,为什么不使用FileStream将字符串保存到文件

var stream:FileStream = new FileStream;
stream.open (targetPath, FileMode.WRITE);
stream.writeUTFBytes (s);
stream.close();
使用FileReference保存文件将打开对话框(安全性问题),并且如果您想保存多个文件,这将非常麻烦


但如果您为非空中应用程序/浏览器(web)工作基于应用程序的另一个选项是,您可以使用服务器端代码保存所有文件,然后将其下载到客户端。当然,此选项将使您的服务器执行额外的任务,特别是在高流量情况下。

Flash player不允许您在一个循环中保存多个文件。浏览器中的FP必须打开文件保存对话框来保存文件。在给定的在这个场景中,简单而优雅的方法是使用nochump库在客户端创建一个zip文件,并在其中添加每个csv,然后使用浏览器flash player将该zip文件保存在磁盘上

var zipOut:ZipOutput=   new ZipOutput();
var ze1:ZipEntry    =   new ZipEntry("csv.csv");
zipOut.putNextEntry(ze1);
zipOut.write(byte_array_to_your_csv_string);
zipOut.closeEntry();
然后让玩家保存这个zip文件


您可以从

下载nochump AS3。Flash player不允许您在一个循环中保存多个文件。浏览器中的FP必须打开一个文件保存对话框来保存文件。在给定的场景中,简单而优雅的方法是使用nochump库在客户端创建一个zip文件,并在其中添加每个csv,然后使用浏览器flash player。下面是一个代码示例

var zipOut:ZipOutput=   new ZipOutput();
var ze1:ZipEntry    =   new ZipEntry("csv.csv");
zipOut.putNextEntry(ze1);
zipOut.write(byte_array_to_your_csv_string);
zipOut.closeEntry();
然后让玩家保存这个zip文件


你可以从

下载nochump AS3,我想你的代码看起来不错-如果你的结果中有多个键,它应该保存多个文件。那么什么不起作用呢?你试过调试并查看结果中是否有多个不同的键吗?Kishore,一个浏览器应用程序不能一次保存多个文件,因为存在安全问题ty原因。最终用户必须通过弹出的对话框选择在每个文件上单击“保存”。这是您的选项,或者按照建议制作一个zip文件。还有为什么不
var value:String=String(event.result[key])
?尝试在两个函数中使用
跟踪
,以检查是否有多个条目通过。我想您的代码看起来不错-如果您的结果中有多个键,它应该保存多个文件。那么什么不完全起作用呢?您是否尝试过调试,并查看结果中是否有多个不同的键?Kishore,a brows由于安全原因,er应用程序不能一次保存多个文件。最终用户必须选择通过弹出的对话框单击每个文件上的“保存”。这是您的选择,或者按照建议制作一个zip文件。还有为什么不
var value:String=String(event.result[key])
?尝试在两个函数中使用
跟踪
,以检查是否有多个条目通过。我使用的是基于浏览器的应用程序,因此无法使用FileStream。请提供一些选项来下载服务器端文件。服务器端/后端编程语言是什么?您需要在后端处理每个文件,而不是打包它们在使用FileReference下载zip文件之前file@Januartha,有一个ZIP文件创建者可直接在AS3中使用。它名为FZIP.ah当然,使用任何AS3 ZIP库打包的byteArray,但您仍然需要先创建每个.csv文件感谢Januartha,我尝试了servlet,我能够使用它我正在使用基于浏览器的应用程序,因此我无法使用FileStream。请提供一些选项来下载服务器端文件。您的服务器端/后端编程语言是什么?您需要在后端处理每个文件,而不是将它们全部打包到zip文件中。在使用FileReference下载zip文件之前file@Januartha,有一个ZIP文件创建者可供使用直接在AS3中。它被称为FZIP.ah当然,使用任何AS3 Zip库打包的byteArray,但您仍然需要首先创建每个.csv文件感谢Januartha,我尝试使用servlet,我能够使用它