Adobe Flash cs6输出窗口在.exe文件中执行Filesteam操作时自动关闭,但它在闪存调试模式下工作正常

时间:2017-03-28 05:49:33

标签: actionscript-3 air flash-cs6 flashdevelop

我正在使用 adobe flash cs6 来创建桌面应用程序。在该应用程序中,我使用 flash.filesystem.filestream 来保存文本文件 (我不想使用 FileReference ,因为我不想显示保存对话框) 当我在导出的 .swf .exe 文件中调用新的FileStream()时,应用程序停止运行它关闭了窗户。 这是执行此行时的示例代码 var fileStream:FileStream = new FileStream(); 窗口自动关闭,但此代码在预览模式下正常工作 (ctrl + Enter)iam使用 目标:AIR 2.5; 脚本:ActionScript 3.0 在发布设置中。

sample.as

package{
import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;    

public class SampleClass {
    public function generateReport (text : String) : void
    { 
        var fileMode:String = (FileMode.APPEND);
        var fileStream : FileStream = new FileStream();
        var file:File = File.desktopDirectory.resolvePath("sample.txt");
        fileStream.open (file, fileMode);
        fileStream.writeMultiByte (text, File.systemCharset);
        fileStream.close ();
    }

}

}

有什么方法可以解决这个问题吗? 非常感谢你!

普拉

1 个答案:

答案 0 :(得分:1)

我不知道text的内容是什么,但是从.writeMultiByte (text, File.systemCharset);我想你想写非英文字母字符?

最好只使用.writeUTFBytes,因为它可以同时处理英语和外国字母表。

Anycase ...看看此代码重新修复SampleClass.as是否适合您(在没有崩溃 .exe 的情况下进行测试):

package{

import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;

import flash.display.MovieClip;

public class SampleClass extends MovieClip {

    public function SampleClass ()
    {
        generateReport("test Chinese : 你好 世界 ... test Urdu : ہیلو دنیا ... test Russian : Привет мир");
    }

    public function generateReport (text : String) : void
    { 
        var fileMode:String = "append"; //not... String = (FileMode.APPEND);
        var fileStream : FileStream = new FileStream();
        var file:File = File.desktopDirectory.resolvePath("sample.txt");

        fileStream.open (file, fileMode);
        //fileStream.writeMultiByte (text, File.systemCharset); //trying non-English chars??
        fileStream.writeUTFBytes(text); //UTF is Unicode so can handle non-English chars
        fileStream.close();
        //trace("Text Done... check file \"sample.txt\" in Desktop");
    }

} //end Class
} //end Package