当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > AS3的System类解决歌词中乱码问题

ActionScript
Flash as入门(4):AS常用语句
Flash as入门(5):学习AS数组
Flash as入门(6):文本与字符串⒒
Flash AS3鼠标事件使用详解
网页中flash的trace方法输出数据
Flash as入门(11):拖动与碰撞检测
AS教程:随机显示数字
Flash AS文本字段的透明度alpha变换
AS教程:对场景和MC添加鼠标监听
AIR设置:transparent和systemChrome
Flash AS3教程:flash.text.TextField
AS教程:理解变量作用域修饰符(modifier)
ActionScript3.0中类间传值问题解决
ActionScript3.0中类的定义以及类属性
Flash AS3教程:类属性的属性
ActionScript3.0教程:变量
ActionScript3.0教程:方法
ActionScript3.0教程:类的枚举
简单认识Flash as面向对象编程
Flash AS2教程:影片剪辑

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-16   浏览: 70 ::
收藏到网摘: n/a

在做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就行了。