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

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

なでしこでクリックイベント中にクリックイベントが発生したら、どうなる?

クリックすると1から100まで数字がカチャカチャ増えていくラベルを作る。

ラベルAとはラベル
そのクリックした時
 100回
   ラベルAテキスト回数
   0.05秒待つ

100になるまで5秒かかる。
じゃあ5秒以内にまたクリックしたらどうなる?

つまり「クリックした時」のイベントでループが動いているときに 「クリックした時」が発生するとどうなるか。
実験!

実験用のプログラムは以下。
ラベル1個だとよくわからないので、5個にしてテスト。

r1から5まで繰り返す
  bbb[r]ラベルして作成
  bbb[r]テキスト「0」
  bbb[r]タグ=r
  bbb[r]クリックした時
    ループ様子(イベント部品タグ)
 
●ループ様子(n)
 100回
   bbb[n]テキスト回数
   0.05秒待つ

[プログラムの内容]
・ラベルを5つ作る(bbb[1]~bbb[5])
・ラベルをクリックすると、ラベルのテキストが1→100まで変化(0.05秒おき)

このラベルbbb[1]をクリックし、テキストが50くらいの時にラベルbbb[2]をクリックするとどうなるか。
実行してラベルをぺちぺち!

[実験結果]
・1度目のクリックでラベルの数値が1.2.3...と増える
・別のラベルクリックした時、1つ目のラベルは「45」で停止
・2つ目のラベルは数値が1.2.3…100と変化
・2つ目が100になったあと、1つ目のラベルが46.47.48…100と変化

[結論]
イベント中にイベントが発生すると、最初のは一時停止、2個目が実行される。
2個目が終了すると最初やつの続きからになる。

スタックに積んで新しいイベントを先に消化するようだ。


リストのクリックでフォルダを選んで中の画像をパラパラアニメにして表示するプログラム、クリック時は~で無限ループ使っていた。
めっちゃポチポチするとスタックオーバーフローすることが予想される。
どうせ公開していないので、自分だけ気を付ける。