tomo.mobi

Representation design of material


HTML5 canvasのスコープに関して注意

flashでHTML5 canvasからつくるjavascriptはフレーム毎function関数の中に格納されるので、フレームで指定した関数はローカルになるようです。グローバルにしたい場合はjavascriptなのでそのまま定義します。

Lite1.1を思い出す。
HTML5 canvasだとswfのようにある程度制限された領域での問題ではなくなり、jsで動く解析ツールとか一緒に入れちゃったら、ひっちゃかめっちゃかになりそうなので、関数表なる記述を1フレーム目や一番上のレイヤーに記述しておいて、しっかり管理する必要があるとおもった。数が多くなりそうだったら、いままでとおりinitフレーム等にグローバル関数は記述するのがよさそう。(名称の重複が怖いので、フレーム名とローカル関数もある程度書くようにしたほうがいいかも。)

ここは、HTML5 canvas独自のflashみたいにparentとかrootとかあると良いんだけど。
ちなみに、フレームのjsは以下のような感じで吐き出される。

function frame01(){ //フレーム毎できあがる。
var kansu01;
}

function frame02(){ //フレーム毎できあがる。
var kansu02;
}