作成日:2024年08月27日
ラーメンタイマーを作ろう(2)

必要なスクリプト
まずは必要となるスクリプトを列挙してみます
- 起動画面で使用するスクリプト
- 起動時の処理
- タイマーを開始する
- カスタム時間設定画面へ移動する
- アプリを終了する
- カスタム時間設定画面で使用するスクリプト
- カスタム時間への加算処理(10分、1分、10秒、1秒)
- カスタム時間からの減算処理(10分、1分、10秒、1秒)
- タイマーを開始する
- 起動画面へ戻る
- タイマー画面で使用するスクリプト
- タイマーを一時停止する
- タイマーを再開する
- タイマーを中止して起動画面へ戻る
- 仕上がり画面で使用するスクリプト
- 起動画面へ戻る
いくつかは共通で使えそうですね
スクリプトの作成
では、上記のスクリプトを順番に作成していきます
「起動処理」
# ################################################## # 起動時処理 # ################################################## ツールバーの表示切り替え [隠す] メニューバーの表示切り替え [ロック: オフ; 隠す] レイアウトの切り替え [「START」; アニメーション: なし] ウインドウの調整 [収まるようにサイズ変更]
「終了処理」
# ################################################## # 終了処理 # ################################################## ファイルを閉じる [現在のファイル]
「タイマー開始」
# ################################################## # タイマー処理を開始する # ################################################## # タイマー時間の取得 変数を設定 [$$timer; 値: Get ( スクリプト引数 )] # タイマー残り時間の表示 スクリプト実行 [指定: 一覧から; 「残り時間表示」; 引数: ] # タイマー処理の実行 OnTimerスクリプトをインストール [「onTimer」; 間隔: 1] レイアウト切り替え [「TIMER」; アニメーション: 右から反転] # 再開だった場合は停止を解除 変数を設定 [$$stop; 値: ""] ウインドウ内容の再表示 []
「残り時間表示」
# ################################################## # タイマー残り時間の表示 # ################################################## # タイマー残り時間の表示 変数を設定 [$minute; 値: Hour ( $$timer ) * 60 + Minute ( $$timer )] 変数を設定 [$seconds; 値: Seconds ( $$timer )] フィールド設定 [ramenTimer::timeCounter; Let ( [ #m1 = Int ( $minute / 10 ) + 1 ]; ramenTimer::numberObject[#m1] )] フィールド設定 [ramenTimer::timeCounter[2]; Let ( [ #m2 = Mod ( $minute; 10 ) + 1 ]; ramenTimer::numberObject[#m2] )] フィールド設定 [ramenTimer::timeCounter[3]; Let ( [ #s1 = Int ( $seconds / 10 ) + 1 ]; ramenTimer::numberObject[#s1] )] フィールド設定 [ramenTimer::timeCounter[4]; Let ( [ #s2 = Mod ( $seconds; 10 ) + 1 ]; ramenTimer::numberObject[#s2] )]
「onTimer」
# ################################################## # onTimerスクリプト # ################################################## # 残り時間の減算 変数を設定 [$$timer; 値: $$timer - 1] # タイマー残り時間の表示 スクリプト実行 [指定: 一覧から; 「残り時間表示」; 引数: ] # 時間になったらアラームを鳴らす If [$$timer ≤ 0] # onTimerの終了 変数の設定 [$$timer; 値: ""] onTimerスクリプトをインストール [] レイアウト切り替え [「FINISH」; アニメーション: 右から反転] AVPlayer再生 [フィールド: ramenTimer::sound[2]; 表示: オーディオのみ] Else AVPlayer再生 [フィールド: ramenTimer::sound; 表示: オーディオのみ] End If
「カスタム時間設定」
# ################################################## # カスタム時間設定画面へ移動する # ################################################## # 初期値は3分 変数を設定 [$$custom; 値: Time ( 0; 3; 0 )] # カスタム時間表示 スクリプト実行 [指定: 一覧から; 「カスタム時間表示」; 引数: ] レイアウト切り替え [「CUSTOM」; アニメーション: 右から反転]
「加算」
# ################################################## # カスタム時間に指定時間を加算 # ################################################## 変数を設定 [$add; 値: Get ( スクリプト引数 )] 変数を設定 [$$custom; 値: $$custom + $add] If [$$custom > Time ( 0; 99; 59 )] 変数を設定 [$$custom; 値: Time ( 0; 99; 59 )] カスタムダイアログを表示 ["上限に達しました"; "カスタム時間は99分59秒が上限です"] End If # カスタム時間表示 スクリプト実行 [指定: 一覧から; 「カスタム時間表示」; 引数: ]
「減算」
# ################################################## # カスタム時間から指定時間を減算 # ################################################## 変数を設定 [$substract; 値: Get ( スクリプト引数 )] 変数を設定 [$$custom; 値: $$custom - $substract] If [$$custom < 0] 変数を設定 [$$custom; 値: Time ( 0; 0; 0 )] End If # カスタム時間表示 スクリプト実行 [指定: 一覧から; 「カスタム時間表示」; 引数: ]
「カスタム時間表示」
# ################################################## # 設定したカスタム時間を画面表示する # ################################################## 変数を設定 [$minute; 値: Hour ( $$custom ) * 60 + Minute ( $$custom )] 変数を設定 [$seconds; 値: Seconds ( $$custom )] フィールド設定 [ramenTimer::timeCounter; Let ( [ #m1 = Int ( $minute / 10 ) + 1 ]; ramenTimer::numberObject[#m1] )] フィールド設定 [ramenTimer::timeCounter[2]; Let ( [ #m2 = Mod ( $minute; 10 ) + 1 ]; ramenTimer::numberObject[#m2] )] フィールド設定 [ramenTimer::timeCounter[3]; Let ( [ #s1 = Int ( $seconds / 10 ) + 1 ]; ramenTimer::numberObject[#s1] )] フィールド設定 [ramenTimer::timeCounter[4]; Let ( [ #s2 = Mod ( $seconds; 10 ) + 1 ]; ramenTimer::numberObject[#s2] )]
「一時停止」
# ################################################## # タイマーを一時停止 # ################################################## # タイマー停止 onTimerスクリプトをインストール [] # タイマー再開ボタン表示のため 変数を設定 [$$stop: 値: 1] ウインドウ内容の再表示 []
「STARTへ戻る」
# ################################################## # 「START」画面へ戻る # ################################################## # タイマー停止 onTimerスクリプトをインストール [] # 変数を破棄 変数を設定 [$$stop; 値: ""] 変数を設定 [$$custom; 値: ""] 変数を設定 [$$timer; 値: ""] レイアウト切り替え [「START」; アニメーション: 右から反転]
このスクリプトを必要な場所に設定したら完成です
完成品はこちらからダウンロードできますので、ご興味がありましたらどうぞ
ラーメンタイマーの問題点
ここまで作ってきましたが、このラーメンタイマーには致命的な問題点があります
それは、前面表示されていないとタイマーが動かない、という点です
ラーメンが出来上がるまでの3分、カウントダウンされるだけの画面をずっと見ていなくてはいけない、ではとても使い物になりません
実用性を考えるなら、カウントダウンはされませんがローカル通知を使用してファイルを閉じても通知してくれるようにするか、待ち時間中画面を見ていても退屈しない様に何らかのギミックを仕込むとかが必要ですね
現実的な使い方を、と言いつつ結局あまり現実的でない結果になってしまいました(無念)

以上で今日のメモ書きは終了です
内容はいかがでしたか?
もしご意見やご要望、誤りの指摘などありましたら、下記フォームよりお気軽にご連絡ください