時間設定に取り組んでみました.
時間設定に取りかかる - わさっき
URLの中に,特殊な文字列を入れることで,「何分経過後にどのベルを鳴らすか」を指定します.今の段階では,自分の見聞きする経験に基づき,学内外の発表に使えそうなものにしています.
pオプションについては一つだけ変更しました.index.html?p30を指定したとき,予鈴1が鳴る時間を,開始から15分後としました.
今回のバージョンアップのメインは,きめ細かく,時間設定ができるようにしたことです.
予鈴を7分,発表終了を8分,質疑終了を10分としたいとき,以下のいずれでもかまいません.
- index.html?p10(これは前回から)
- index.html?m07000810
- index.html?m070810
- index.html?m7,0,8,10
- index.html?m7_8_10
- index.html?s=0420000004800600
- index.html?s=042004800600
- index.html?s=420,0,480,600
- index.html#s420-480-600
構文は次の通りです.
- URLのうち,最後の「/」以降が時間設定の対象となります.index.htmlのあとに「?」または「#」をつけて,オプションを指定することもできますし,ファイル名の中でオプションを記述するよう,名前を変えてから,ブラウザで開くのでもかまいません.
- 「3つの整数」「4つの整数」を指定する際の区切り文字は,「,」「-」「_」「 」のいずれかです*1.
- オプションとして認識する文字は,いわゆるASCII文字のみです.
- 「m=値」または「m値」により,分単位で時間を指定します.値は以下のいずれかです.
- 8桁の整数: 2桁ずつにわけて,順に予鈴1が鳴るまでの時間,予鈴2が鳴るまでの時間,発表終了の時間,質疑終了の時間とします.
- 6桁の整数: 2桁ずつにわけて,順に予鈴1が鳴るまでの時間,発表終了の時間,質疑終了の時間とします.予鈴2は無効とします.
- 4つの整数: 順に予鈴1が鳴るまでの時間,予鈴2が鳴るまでの時間,発表終了の時間,質疑終了の時間とします.
- 3つの整数: 順に予鈴1が鳴るまでの時間,発表終了の時間,質疑終了の時間とします.予鈴2は無効とします.
- 「s=値」または「s値」により,秒単位で時間を指定します.値は以下のいずれかです.
- 16桁の整数: 4桁ずつにわけて,順に予鈴1が鳴るまでの時間,予鈴2が鳴るまでの時間,発表終了の時間,質疑終了の時間とします.
- 12桁の整数: 4桁ずつにわけて,順に予鈴1が鳴るまでの時間,発表終了の時間,質疑終了の時間とします.予鈴2は無効とします.
- 4つの整数: 順に予鈴1が鳴るまでの時間,予鈴2が鳴るまでの時間,発表終了の時間,質疑終了の時間とします.
- 3つの整数: 順に予鈴1が鳴るまでの時間,発表終了の時間,質疑終了の時間とします.予鈴2は無効とします.
- 時間が0になるような値を指定すると,停止時のフォームに表示されなくなります.例えばindex.html?m,,30,とすると,「発表時間:30分0秒」だけになります.
もう一つ,小さな機能追加をしました.というのも…
アラームを表示するアプリケーションを使っていたのだが、電源節約のために2分間で画面を消すように設定したまま始めてしまったので、2分ごとに操作しないと画面が消えてしまって閉口する :-(
学生発表の初司会 - 武蔵野日記
そうです.座長の友では,画面解像度が小さくなり,座長の友以外のアプリケーションが実行できなくなるかわりに,画面オフにならないのでした.しかし,ブラウザでタイマーを動かすとなると,画面が消えるだとか,スクリーンセーバーが働くだとかいったことが起こり得ます.
そこでzjsでは,時間停止状態のときに出すボタンを一つ,追加しました.青地で「準備OK?」と書かれたボタンを押すと,ポップアップが出ます.
“ライトついてますか記法”とでも呼びましょうか*2.こうして,ブラウザ外の設定変更を,利用者に促すことにしました.
その他の小さな修正箇所です.
- 文字列またはnullを整数値に変換するmyParseIntについて,"08"を与えると8進数と見なして(さらに,"8"は8進数にない文字なのでその前までを対象として)0を返していました.これは8を返すよう,手直ししました.
- 変数bell_exampleは,上記オプションに伴いその必要性が下がったと判断し,取り除きました.
- タイトルバーに関して,「zjs: 発表時間はカウントダウン、質疑時間はカウントアップ」のときにリセットのボタンを押したときにも,「zjs」のみに戻るようにしました.
ファイルはhttp://github.com/takehiko/zjsより取得可能です.
*1:区切りは数字以外なら何でもいいんじゃないかと思って,「path.match(/m=?(\d*)\D(\d*)\D(\d*)\D(\d*)/)」と書いてみると,まったくマッチしませんでした.