我有一个想法,如果我可以制作一个文本文件并将其渲染为像素。第一次测试成功。我有一个像素。现在,当我放置更多像素时,它将无法正常工作。这是代码:
xhr=new XMLHttpRequest();
xhr.open("GET", "graphtest.prg", false);
xhr.send();
document.write(xhr.responseText);
var file=xhr.responseText;
var c=0;
var bad=false;
var val=0;
var rgbs="rgb(";
while(c<file.length && bad==false) {
//alert(file.charAt(c));
cc=file.charAt(c);
if (cc=="P" || cc=="R" || cc=="G") {
// magic
}
else {
if (cc=="{") {
if (val!=5) {
var newelem=document.createElement("span");
newelem.innerHTML=" ";
/*newelem.style.width="1px";
newelem.style.height="1px";
newelem.position="absolute";*/
newelem.className="graf";
}
}
else if (cc=="'") {
c++;
cc=file.charAt(c);
switch (val) {
case 0:
//alert("RUN");
var num=""+cc.toString();
c++;
while(!isNaN(file.charAt(c))) {
num+=file.charAt(c).toString();
c++;
}
newelem.style.left=num+"px";
//alert(num);
val++;
c++;
continue;
break;
case 1:
var num=""+cc.toString();
c++;
while(!isNaN(file.charAt(c))) {
num+=file.charAt(c).toString();
c++;
}
newelem.style.top=num+"px";
//alert(num);
val++;
c++;
continue;
break;
case 2:
var num=""+cc.toString();
c++;
while(!isNaN(file.charAt(c))) {
num+=file.charAt(c).toString();
c++;
}
rgbs+=num+",";
//alert(num);
val++;
c++;
continue;
break;
case 3:
var num=""+cc.toString();
c++;
while(!isNaN(file.charAt(c))) {
num+=file.charAt(c).toString();
c++;
}
rgbs+=num+",";
//alert(num);
val++;
c++;
continue;
break;
case 4:
var num=""+cc.toString();
c++;
while(!isNaN(file.charAt(c))) {
num+=file.charAt(c).toString();
c++;
}
rgbs+=num+")";
//alert(num);
val++;
c++;
continue;
break;
case 5:
newelem.style.backgroundColor=rgbs;
document.body.appendChild(newelem);
val=0;
rgbs="";
newelem=null;
cc="";
num="";
break;
}
}
if (val==5) {
newelem.style.backgroundColor=rgbs;
document.body.appendChild(newelem);
val=0;
rgbs="";
//newelem=null;
//c;
alert(file.charAt(c));
cc="";
num="";
}
}
c++;
}
这是“图形文本”文件:
PRG{'100','200','0','255','0'}{'200','100','0','0','255'}
第一个像素渲染成功,但第二个像素没有背景色。这是解析问题还是其他问题?