5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:好人村
性别:先生
最后登录:2012-08-07
http://jh7086.5d.cn/
大坏人
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2004/12/24 | 将像素字的填充信息压缩
类别(我滴地盘er)
|
评论
(3)
|
阅读(271)
|
发表于 19:56
//处理后用0-9,A-Z,a-z62种字符来记录像素位置
System.useCodepage = true;
//加载外部文本文件(文件路径,目标地址[,变量名称[,加载完毕后执行的函数]])
function loadTXT(url:String, temp:Object, func:Function) {
var depth = this.getNextHighestDepth();
var mc = this.createEmptyMovieClip("MC"+depth, depth);
var tt = setInterval(test, 50);
loadVariables(url, mc);
function test() {
if (mc.txtend != undefined) {
temp.data = mc.jhdata;
if (func != null) {
func();
}
removeMovieClip(mc);
clearInterval(tt);
}
}
}
//
jhdata = {};
loadTXT("jh7086.txt", jhdata, begin);
//
function begin() {
var mydata=zip(jhdata.data);
trace(mydata);
}
//数据压缩
function zip(mydata) {
mydata = mydata.split("\r\n");
mydata.shift();
mydata.pop();
var L:String = jh_10toD(mydata[0].length,62);
for (var i in mydata) {
var index=-1;
var str="";
while((index=mydata[i].indexOf("1",index+1))>=0){
str+=jh_10toD(index,62);
}
mydata[i]=str;
}
return L+mydata.join(",");
}
//将10进制数N转换成d进制数(以0-9,A-Z,a-z字符表示),d为2-62
function jh_10toD(N:Number, d:Number) {
N = Math.floor(N);
d = d<2 ? 2 : d>62 ? 62 : d;
var s, e:String = "";
while (N>0) {
s = N%d;
if (s>35) {
//36至62的数用a-z字符表示(s-36+97)
s = String.fromCharCode(s+61);
} else if (s>9) {
//10至35的数用A-Z字符表示(s-10+65)
s = String.fromCharCode(s+55);
}
e = s+e;
N = Math.floor(N/d);
}
e = e != "" ? e : "0";
return e;
}
---------------------------原始文件格式---------------------------------
jhdata=
01000001000001000000010000100001000001000000010
00101111111000101111111011111101010000101111111
00100010000010000000010000000001010010000000010
00000010010010000100010001111011111010000100010
11000100010010000100010001001001000010000100010
01001111100010000100010001001001000010000100010
01000001001010001010010001111001100010001010010
01000010010010010001010001010001100010010001010
01010100100010100000110001011010101010100000110
01100011010010000000010010010010101010000000010
00001100001010000001110000110100111010000001110
&txtend=true
----------------------处理后得到的字串(其中第一个字符记录的是行宽)---------------------------
l17DLQVbj,2456789AEGHIJKLMOPQRSTVXcefghijk,26CLVXaj,69CHLPQRSUVWXYafj,0159CHLPSVafj,145678CHLPSVafj,17ACGILPQRSVWaegj,169CFJLPRVWadhj,1358CEKLPRSUWYacij,12679CLORUWYaj,45ACJKLQRTWXYahij
0
评论
Comments
日志分类
首页
[163]
Flash习作
[85]
Flash进修
[33]
Flash推荐
[16]
Flash涂鸦
[4]
听~音乐
[9]
我滴地盘er
[16]