我在用Adobe Flash CS6用于创建桌面应用程序。在该应用程序中我使用闪存文件系统文件流保存文本文件
(我不想使用文件参考因为我不想显示保存对话框)
当我在导出的文件中调用 new FileStream() 时.swf or .exe文件后,应用程序停止运行并关闭窗口。
这是我执行此行时的示例代码var fileStream : FileStream = new FileStream();窗口自动关闭,但此代码在预览模式下工作正常
( ctrl + Enter) 我正在使用
目标:AIR 2.5;
脚本:ActionScript 3.0
在发布设置中。
样本.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 ();
}
}
}
有什么办法可以解决这个问题吗?
非常感谢!
Pravin
我不知道内容是什么text
是,但从此.writeMultiByte (text, File.systemCharset);
我猜你想写非英语字母字符?
最好只用.writeUTFBytes
因为它可以处理英语和外语字母。
无论如何...看看这个代码是否重新修复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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)