Photo by
muyouno_tatsuya
なでしこさんで雑タイマー
今週もスケジューリング下手くそ。
このバカ、Magic The Gathering Arena を始めやがったぞ。
まずはヴァイスシュヴァルツポータブルを1周はしろよ。
あと、デュエマであそぼう!!!も途中だっただろ。
さて、Qiitaやその他で時間を圧迫し、残された時間は約15分。
いつもよりさらに雑な雑プログラムで繋ぐしかないな……
今回やったこと
なでしこで、最低限の機能を持ったタイマーを作る。
今回はスタートボタンのみを実装。
ストップとか一時停止とかは無し。計る時間はプリセットのみ。
時間の表示も適当。プログレスバーとか時間が経ったら音声で知らせるとかも面倒なのでしない。
プログラム
雑タイマー (プログラム貯蔵庫)
「スタート:」のラベル作成。
スタートボタンリストは空配列。
[0.5, 1, 2, 3, 5, 10, 20, 30, 40, 45, 60, 90]を反復
分数は対象。
スタートボタンは「{分数}分」のボタン作成。
スタートボタンリストにスタートボタンを配列追加。
スタートボタンに分数をポケット設定。
{関数}スタートでスタートボタンのクリックされた時。
ここまで。
改行作成。
「設定時間:」のラベル作成。
設定時間ラベルは「--分」のラベル作成。
改行作成。
「経過時間:」のラベル作成。
経過時間ラベルは「--分」のラベル作成。
改行作成。
時間ラベルは「時間です!」のラベル作成。
それに{
"color": "red",
"font-size": "500%",
"visibility": "hidden",
}をDOMスタイル一括設定。
設定時間は0。
開始時刻は0。
●スタートとは
設定時間ラベルに「{対象のDOMポケット取得}分」をテキスト設定。
設定時間は(対象のDOMポケット取得)×60000。
開始時刻はシステム時間ミリ秒。
時間ラベルにオフをDOM可視設定。
スタートボタンリストを反復
対象にオフをDOM有効設定。
ここまで。
{関数}表示更新を画面更新時実行。
ここまで。
●表示更新とは
経過時間はシステム時間ミリ秒-開始時刻。
経過時間ラベルに「{経過時間÷60000}分」をテキスト設定。
もし、経過時間が設定時間以上なら
時間ラベルにオンをDOM可視設定。
スタートボタンリストを反復
対象にオンをDOM有効設定。
ここまで。
違えば
{関数}表示更新を画面更新時実行。
ここまで。
ここまで。ポイントは……面倒だし時間に余裕も無いので省略!
おわりに
なでしこで、最低限の機能のタイマーを実装できた。
というか、タイマーなんかわざわざ自分で作らなくても既成のものがグッズでもプログラムでもいっぱいあるだろ。


コメント