// メインループ
var loop = function() {
...
setTimeout(arguments.callee, 1000 / 30);
}
// 準備ができたらloopを開始
(function(){
if (okay) loop();
else setTimeout(arguments.callee, 1);
})();
これundefined is not function
が出るんだけど、
var loop = function(){...}(...)();
と解釈されてた・・・。
正しくは
// メインループ
var loop = function() {
...
setTimeout(arguments.callee, 1000 / 30);
}; // 行末セミコロン
// 準備ができたらloopを開始
(function(){
if (okay) loop();
else setTimeout(arguments.callee, 1);
})();
あるいはこっちの構文だと問題ない。
// メインループ
function loop() {
...
setTimeout(arguments.callee, 1000 / 30);
} // 行末セミコロン不要
// 準備ができたらloopを開始
(function(){
if (okay) loop();
else setTimeout(arguments.callee, 1);
})();
気づかんわ!!