Ich versuche, den Bearbeitungscode aus Textfeld zu bekommen und es in Canvas laufen zu lassen, aber ich weiß nicht, was passiert, kann mir jemand helfen? Wenn ich es debugge, sagt es ctx.compile(); ist keine Funktion Wie kann ich es funktionieren lassen? Hier ist der Code den ich benutze.Ausführen von Bearbeitungscode in Canvas durch Abrufen des Codes aus Textbereich
<!DOCTYPE Html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="styles/style2.css" >
<script src="processing-1.4.1.js"></script>
<script type="text/javascript">
function submitTryit() {
var text = document.getElementById("textareaCode").value;
var ifr = document.createElement("iframe");
ifr.setAttribute("frameborder", "0");
ifr.setAttribute("id", "iframeResult");
document.getElementById("iframewrapper").innerHTML = "";
document.getElementById("iframewrapper").appendChild(ifr);
var ifrw = (ifr.contentWindow) ? ifr.contentWindow : (ifr.contentDocument.document) ? ifr.contentDocument.document : ifr.contentDocument;
ifrw.document.open();
ifrw.document.write(text);
ifrw.document.close();
canvas();
if (ifrw.document.body && !ifrw.document.body.isContentEditable) {
ifrw.document.body.contentEditable = true;
ifrw.document.body.contentEditable = false;
}
function canvas() {
var ifrr = document.getElementById('iframeResult');
var iframediv = (ifrr.contentWindow.document) ? ifrr.contentWindow.document : (ifrr.contentDocument.document) ? ifrr.contentDocument.document : ifrr.contentDocument;
var canv = document.createElement('CANVAS');
canv.setAttribute('id', 'mycanvas');
var ctx = canv.getContext("2d");
ctx.compile();
iframediv.body.appendChild(canv);
}
}
function compile(){
var processingCode = document.getElementById('textCode').value;
var jsCode = Processing.compile(processingCode).sourceCode;
}
</script>
</head>
<body>
<div class="container">
<!--Iframe-->
<div class="iframecontainer">
<div id="iframewrapper" class="iframewrapper">
</div>
</div>
<!--PJS text field-->
<div class="PJStextwraper">
<div class="overPJStext">
</div>
<textarea id="textCode" spellcheck="false" autocomplete="off" wrap="logical"> int x,y,w;
float vx,vy;
void setup() {
size(300,200);
x = int(random(width));
y = int(random(height));
vx = random(5);
vy = random(5);
w = int(10+random(10));
}
void draw() {
background(140,70,60);
ellipse(x,y,w,w);
x += vx;
y += vy;
//
if(x > width || x < 0) {
vx *= -1;
}
if(y > height || y < 0) {
vy *= -1;
}
}
</textarea>
</div>
<button class="BT" type="button" onclick="submitTryit()">Run »</button>
</div> <!-- End container-->
</body>
</html>
Haben Sie an der Konsole angesehen, wenn es zu sehen, irgendwelche Fehler ??? Hit F12, um an Dev-Tools und die Konsole – Blindman67
Ich habe es versucht, geben Sie mir Ausnahme: Typ Fehler, der sagt: Ctx.compile() ist keine Funktion. Ich habe versucht, etwas wie eine var com = compile(); ctx.com; und der Code wird ohne Fehler ausgeführt, aber die Zeichenfläche ist nicht auf dem Bildschirm und die Konsole sagt, dass com nicht definiert ist. –