欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

AS3的System类解决歌词中乱码问题

程序员文章站 2023-11-03 20:51:34
在做FLASH程序时常常会遇到乱码问题,比如在做一个读取同步歌词文件的程序时载入的全是乱码,这是一个让人很头疼的问题,有的人会说,那怕什么?把那个歌词的编码改成UTF-8不就行了吗... 08-10-06...
在做flash程序时常常会遇到乱码问题,比如在做一个读取同步歌词文件的程序时载入的全是乱码,这是一个让人很头疼的问题,有的人会说,那怕什么?把那个歌词的编码改成utf-8不就行了吗?但是网站上的下载下来的同步歌词文件大都是ansi编码的。我们要用的是直接就可以拿来用的。
前面一篇教程讲述的是flash中解决中文字体的问题。
有很多人写了类来解决这个问题,但写出来的类都很复杂,根本不实用。
那么,难道就没有办法了吗?
当然有,并且这个办法还很简单,我在翻看flash cs3的帮助文档时一不小心发现了这个办法(嘿嘿,先自娱一下)。
as3中有一个system类,只须一个简单的设置就行了。
请看示例:

package {
import flash.system.*;
import flash.display.sprite;
import flash.net.urlrequest;
import flash.net.urlloader;
import flash.events.ioerrorevent;
import flash.events.event;
import fl.controls.textarea;
import flash.text.textformat;
public class sys extends sprite {
private var myxml:xml;
private var mytxt:textarea=new textarea ;
private var req:urlrequest=new urlrequest("test.txt");
private var ul:urlloader;
private var tf:textformat=new textformat ;
public function sys() {
tf.size=14;
tf.color=0xff0000;
mytxt.setsize(550,400);
addchild(mytxt);
system.usecodepage=true;//解决中文乱码
ul=new urlloader(req);
ul.addeventlistener(ioerrorevent.io_error,ioerror);
ul.addeventlistener(event.complete,loaded);
}
private function loaded(event:event) {
mytxt.setstyle("textformat",tf);
myxml=xml(ul.data);
mytxt.text=myxml;
system.setclipboard(mytxt.text);//设置剪贴板文本
}
private function ioerror(event:ioerrorevent) {
mytxt.text="无相关文件";
}
}
}
这是我写的一个包,具体怎么用,我想大家都会了,文中蓝色字就是解决乱码的了。
在flash中system.usecodepage是布尔类型的且默认值为false,用时只要把其值设为true就行了。