テキストファイルを作成して、それをピクセルにレンダリングできるかどうかを考えました。最初のテストは成功します。私はそれのために1つのピクセルを持っていました。これで、より多くのピクセルを配置すると、機能しなくなります。コードは次のとおりです。
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'}
最初のピクセルは正常にレンダリングされますが、2番目のピクセルには背景色がありません。これは構文解析の問題ですか、それとも他の問題ですか?