andy-tang 2008-6-27 12:28
请教一个AIR 问题,怎么识别*.txt文件的字符集?
哈哈,又当学生了,开始学Air!!
春叶版主最近可好?老朋友们都好啊!
昨天写了个Air 文本编辑器,能读出来,但有时会显示乱码,不知哪们大虾能解决?
代码如下:
[code]
package
{
//
import flash.filesystem.File;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode
import flash.filesystem.File;
import flash.net.FileFilter;
import flash.display.NativeWindow
import flash.events.Event;
import flash.text.TextField;
import flash.events.MouseEvent;
import flash.filesystem.FileStream;
import flash.utils.ByteArray;
import flash.filesystem.FileMode;
import flash.utils.CompressionAlgorithm
//
public class HelloworldRoot extends MovieClip
{
//
private var m_file:File=new File();
private var m_win:NativeWindow;
private var m_stAppName:String="Air notepad";
private var m_slotX:int=0;
private var m_slotY:int=0;
private var m_stFilter:String="*.txt;*.xml;*.as";
private var m_filter:FileFilter=new FileFilter("文本文件 "+m_stFilter,m_stFilter);
private var m_fileStream:FileStream=new FileStream();
private var m_bta:ByteArray=new ByteArray();
private var m_stFilePath:String="";
//
//∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥构造函数
public function HelloworldRoot()
{
addEventListener(Event.ADDED_TO_STAGE,toStage_this);
//
menubar.openBtn.addEventListener(MouseEvent.CLICK,click_openBtn);
menubar.creatBtn.addEventListener(MouseEvent.CLICK,click_creatBtn);
}
//∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥文件新建函数
private function click_creatBtn(e:MouseEvent){
m_win.title=m_stAppName + " " + "新文档";
}
//∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥文件打开函数
private function click_openBtn(e:MouseEvent){
m_file.addEventListener(Event.SELECT, select_file);
m_file.browseForOpen("Open", [m_filter])
}
//∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥文件选择函数
private function select_file(e:Event){
m_file.removeEventListener(Event.SELECT, select_file);
m_win.title=m_stAppName + " " + m_file.nativePath;
m_fileStream.open(m_file,FileMode.READ);
ttf.appendText(String(m_fileStream.readMultiByte(m_fileStream.bytesAvailable,"CN-GB")));
m_fileStream.close();
}
//∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥舞台缩放函数
private function resize_stage(e:Event){
var width:int=stage.stageWidth;
menubar.bg.width=width;
ttf.width=width-m_slotX;
ttf.height=stage.stageHeight-m_slotY;
}
//∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥舞台添加函数
private function toStage_this(e:Event){
stage.align=StageAlign.TOP_LEFT;
stage.scaleMode=StageScaleMode.NO_SCALE
m_win=stage.nativeWindow;
m_win.title=m_stAppName;
m_slotX=stage.stageWidth-ttf.width;
m_slotY=stage.stageHeight-ttf.height;
ttf.border=false;
stage.addEventListener(Event.RESIZE,resize_stage);
}
}
}
[/code]
文件送上:
[attach]346933[/attach]
ycccc8202 2008-6-27 19:27
System.useCodePage=true;
var bytes:ByteArray=new ByteArray
m_fileStream.readBytes(bytes,0,m_fileStream.bytesAvailable);
ttf.appendText(bytes.toString())
这样写看看~
andy-tang 2008-6-29 23:57
问题解决了,不过方法上有些出入:)
谢谢版主!
andy-tang 2008-6-29 23:59
闪吧在技术上好像落后那么一截,没有 AIR 专区啊!
版主大人,至少增加个 AIR 标签吧,现在只有 RIA 标签!
或者,直接把本版名字改为:flash As3及AIR讨论区:lol
[[i] 本帖最后由 andy-tang 于 2008-6-30 00:05 编辑 [/i]]