なでしこを明後日の方向に

日本語プログラム言語なでしこを応援しています

なでしこ3のイベントの発生について調べてみた

やること

マウスを移動させまくった時のキャンバスのマウス移動した時のイベントが発生する回数と画面更新時実行の発生回数を調べてみます

くわしく

キャンバスのマウス移動した時を設定すると、マウスカーソルを動かした時にすごい回数のイベントが発生します。

画面更新時実行を毎フレーム実行すると、これまたすごい回数のイベントが発生します。

どちらの方が多いかな?ということを計測します。

予想される結果は3通り

・同じ数、交互に発生する(マウス移動した時→画面更新→マウス移動した時→画面更新→…)
・マウス移動した時が多い(マウス移動した時→マウス移動した時→画面更新→マウス移動した時→マウス移動した時→画面更新→…)
・画面更新の方が多い(マウス移動した時→画面更新→画面更新→マウス移動した時→画面更新→画面更新→…)

プログラム

インデント構文

マウス移動回数=0
画面更新回数=0

描画中キャンバスマウス移動した時
 マウス移動回数=マウス移動回数+1


「更新時」画面更新時実行
●更新時
 「更新時」画面更新時実行
 もしマウス移動回数0ならば戻る
 
 画面更新回数=画面更新回数+1
 
 全描画クリア
 [10,10]画面更新回数文字描画
 [10,30]マウス移動回数文字描画
 [10,50](画面更新回数-マウス移動回数)文字描画 //実行回数の差を表示

検証方法

上記のプログラムを実行して、キャンバスの上でマウスを移動させ続ける
実行回数の差を見るとどちらが発生回数多いかがわかる

実行環境

2022年11月ころ ブラウザ:edge

実行結果

実行回数の差は0。
マウスを移動し続けたとき、「描画中キャンバスのマウス移動した時」と「画面更新回数」は同じ回数発生しているようです。

ブラウザの種類やブラウザのアップデートによって変わるかもしれないので、参考程度におねがいします。