mameblock.js icon indicating copy to clipboard operation
mameblock.js copied to clipboard

turtle demo:先頭のコメントブロック削除

Open ycatch opened this issue 7 years ago • 1 comments

奈良さんからのバグレポート。

ひとつだけ、気になったことがあるので、連絡させていただきます。

タートルグラフィックス版の mameBlock のプログラムですが、 オンライン版も、ダウンロード版も、1行目のコメントブロックを 削除すると

  TypeError: Unable to set property 'x' of undefined or null reference

というエラーになるようです。 いろいろ試したところ、どうも、1行目は無視されてしまうようです。 ですから、コメントを削除すると new turtle の命令が実行されなくなる ようです。

そこで、html ファイルの

  // pen layer
  // Start turtle code - recode turtle moving. -------------------------------------

の部分を

  /* / pen layer
  // Start turtle code - recode turtle moving. -------------------------------------*/

のように直したら、正常動作するようになりました。 どうやら、<pre>...</pre> の中に書いた JavaScript を評価する時に 改行は無視されてしまうようです。 このため、ブロックから翻訳された JavaScript のプログラムの1行目が コメントに食われてしまうようです。

ycatch avatar Jul 28 '17 12:07 ycatch

どうやら、<pre>...</pre> の中に書いた JavaScript を評価する時に 改行は無視されてしまうようです。 このため、ブロックから翻訳された JavaScript のプログラムの1行目が コメントに食われてしまうようです。

さらに調べてみました。改行が無視されるのは、末尾だけのようです。

var codeText = code1 + code2 + code3;alert(codeText);

のように、alert を入れたところ、

p.setup = function() {
 p.createCanvas(480, 360);
 p.background(200);
 p.fill(255);
 tPlane = p.createGraphics(p.width, p.height);  // pen layer
// Start turtle code - recode turtle moving. -------------------------------------/** Turtle Graphics */
turtle = new p.Turtle();
turtle.x = 140;

のような alert 表示になりました。

ycatch avatar Jul 28 '17 12:07 ycatch