##あらすじ
DroidScriptというアプリを使うと、javascriptベースの記述でスマホアプリが作れるらしいので、練習として「電子レンジワット数で加熱時間を換算するアプリ」を作る。
##前回までのおさらい
スピンボタンとシークバーを実装し、計算に必要なデータ入力が揃った。あとは計算するだけ。
スマホでスマホアプリを作る① Hello World!
スマホでスマホアプリを作る② 背景やテキストの追加
スマホでスマホアプリを作る③ スピンボタンとシークバー
##ボタンの設置
btn = app.CreateButton( "EXECUTE", 0.4 );
btn.SetMargins( 0, 0.05, 0, 0 );
btn.SetOnTouch( btn_OnTouch );
lay.AddChild( btn );
app.CreateButton
でボタンを作成。括弧内でボタンに表示する文字と、画面幅に対するサイズを設定。.SetMargins
で直前に設置したシークバーとの間隔を設定。.SetOnTouch
でタップしたときに呼び出す関数btn_OnTouch
を設定している。
呼び出す関数のコードがコチラ。
function btn_OnTouch()
{
var my_wave = my.GetText();
var label_wave = label.GetText();
var time = skb.GetValue();
time = Math.round( time * 0.2 ) / 0.2;
var ratio = ( label_wave / my_wave );
var after = time * ratio;
var remain = after % 60;
var newmin = ( after - remain ) / 60;
var newsec = Math.round( remain );
newsec = ( "0" + newsec ).slice( -2 );
var ans = newmin + ":" + newsec;
app.ShowPopup( "Heat for " + ans );
app.Vibrate( "0,100,30,100,50,300" );
}
ついに自分のレンジでの加熱時間を計算。
スピンボタンやシークバーで操作した数字をどうやって拾ってくるのか分からなかったけど、操作後の状態から単純に参照できた。
スピンボタンで選んだ選択肢は.GetText()
、シークバーで合わせた数字は.GetValue()
で参照。
シークバーを操作した時に表示されるのが5秒間隔なので、計算するためにシークバーから参照した数字も5刻みに丸める。
あとはワット数の比で加熱時間を換算し、m:ss表示に加工して"Heat for " + ans
でポップアップ、仕上げにapp.Vivrate
でスマホを振動させ達成感を味わう。
##補足
スピンボタンの選択肢を.GetText
で参照しているので、受け取った数字が文字列になっていると考えて、数字型に変更するためにNumber()
メソッドを使ったところエラーになってしまった。
結局、そんなことしなくてもそのまま計算できてしまうみたい^^)b
##次回
アプリ作成はこれにて終了。
次回はシリーズ目次的なまとめと、コード全文、DroidScriptのちょっとした使い方を紹介。
スマホでスマホアプリを作る シリーズまとめ
###つづく
##シリーズ
DroidScript電子レンジアプリ作成
スマホでスマホアプリを作る① Hello World!
スマホでスマホアプリを作る② 背景やテキストの追加
スマホでスマホアプリを作る③ スピンボタンとシークバー
スマホでスマホアプリを作る④ 実行ボタン
スマホでスマホアプリを作る シリーズまとめ