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

  在做FLASH时常常会遇到乱码问题比如在做个读取同步歌词文件时载入全是乱码这是个让人很头疼问题人会说那怕什么?把那个歌词编码改成UTF-8不就行了吗?但是网站WebSite上下载下来同步歌词文件大都是ANSI编码我们要用是直接就可以拿来用

  前面篇教程讲述是Flash中解决中文字体问题

  有很多人写了类来解决这个问题但写出来类都很复杂根本不实用

  那么难道就没有办法了吗?

  当然有并且这个办法还很简单我在翻看FLASH CS3帮助文档时不小心发现了这个办法(嘿嘿先自娱下)

  AS3中有只须个简单设置就行了

  请看举例:

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 sys extends Sprite {
        private var myxml:XML;
        private var mytxt:TextArea= TextArea  ;
         private var req:URLRequest= URLRequest("test.txt");
        private var ul:URLLoader;
        private var tf:TextFormat= TextFormat  ;
        public function sys {
             tf.size=14;
             tf.color=0xFF0000;
             mytxt.Size(550,400);
             addChild(mytxt);
              .useCodePage=true;//解决中文乱码
             ul= URLLoader(req);
             ul.addEventListener(IOErrorEvent.IO_ERROR,ioerror);
             ul.addEventListener(Event.COMPLETE,loaded);
         }
         private function loaded(event:Event) {
              mytxt.Style("textFormat",tf);
              myxml=XML(ul.data);
              mytxt.text=myxml;
              .Clipboard(mytxt.text);//设置剪贴板文本
          }
          private function ioerror(event:IOErrorEvent) {
              mytxt.text="无相关文件";
         }
     }
}


  这是我写个包具体如何用我想大家都会了文中蓝色字就是解决乱码

  在FLASH中.useCodePage是布尔类型且默认值为false,用时只要把其值设为true就行了

Tags:  解决方案

延伸阅读

最新评论

发表评论