·您当前的位置:主页 > 技术教程 > AS2与AS3技术 >

[AS3]as3同步歌词时乱码问题的处理(as3乱码)

时间:2017-06-09 10:40酷播
在做flash程序时常常会遇到乱码问题,比如在做一个读取同步歌词文件的程序时载入的全是乱码,这是一个让人很头疼的问题

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

前面一篇教程讲述的是flash中解决中文字体的问题。

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

那么,难道就没有办法了吗?当然有,并且这个办法还很简单,我在翻看flash cs3的帮助文档时一不小心发现了这个办法(嘿嘿,先自娱一下)。

as3中有一个system类,只须一个简单的设置就行了。

请看示例:

  1. package { 
  2.        import flash.system.*; 
  3.        import flash.display.sprite; 
  4.        import flash.net.urlrequest; 
  5.        import flash.net.urlloader; 
  6.         import flash.events.ioerrorevent; 
  7.         import flash.events.event; 
  8.        import fl.controls.textarea; 
  9.        import flash.text.textformat; 
  10.         public class sys extends sprite { 
  11.                 private var myxml:xml; 
  12.                 private var mytxt:textarea=new textarea   ; 
  13.                  private var req:urlrequest=new urlrequest("test.txt"); 
  14.                 private var ul:urlloader; 
  15.                 private var tf:textformat=new textformat   ; 
  16.                 public function sys() { 
  17.                           tf.size=14
  18.                           tf.color=0xff0000
  19.                           mytxt.setsize(550,400); 
  20.                           addchild(mytxt); 
  21.                            system.usecodepage=true;//解决中文乱码 
  22.                           ul=new urlloader(req); 
  23.                           ul.addeventlistener(ioerrorevent.io_error,ioerror); 
  24.                           ul.addeventlistener(event.complete,loaded); 
  25.                   } 
  26.                   private function loaded(event:event) { 
  27.                             mytxt.setstyle("textformat",tf); 
  28.                             myxml=xml(ul.data); 
  29.                             mytxt.text=myxml
  30.                             system.setclipboard(mytxt.text);
    //酷播cuplayer.com提示:设置剪贴板文本 
  31.                    } 
  32.                    private function ioerror(event:ioerrorevent) { 
  33.                             mytxt.text="酷播cuplayer.com提示:无相关文件"
  34.                   } 
  35.           } 

这是我写的一个包,具体怎么用,我想大家都会了,文中蓝色字就是解决乱码的了。

在flash中system.usecodepage是布尔类型的且默认值为false,用时只要把其值设为true就行了。

保利威视云直播提供稳定流畅,高画质,低延迟的直播服务

酷播云服务,酷播云