0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【DroidScript】スマホでスマホアプリを作る④ 実行ボタン

Last updated at Posted at 2020-11-21

##あらすじ
DroidScriptというアプリを使うと、javascriptベースの記述でスマホアプリが作れるらしいので、練習として「電子レンジワット数で加熱時間を換算するアプリ」を作る。

##前回までのおさらい
スピンボタンとシークバーを実装し、計算に必要なデータ入力が揃った。あとは計算するだけ。
Screenshot_20201121-154732.png

スマホでスマホアプリを作る① 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でスマホを振動させ達成感を味わう。
20201121_181900.gif
##補足
スピンボタンの選択肢を.GetTextで参照しているので、受け取った数字が文字列になっていると考えて、数字型に変更するためにNumber()メソッドを使ったところエラーになってしまった。

結局、そんなことしなくてもそのまま計算できてしまうみたい^^)b

##次回
アプリ作成はこれにて終了。

次回はシリーズ目次的なまとめと、コード全文、DroidScriptのちょっとした使い方を紹介。
スマホでスマホアプリを作る シリーズまとめ

###つづく

##シリーズ
DroidScript電子レンジアプリ作成
スマホでスマホアプリを作る① Hello World!
スマホでスマホアプリを作る② 背景やテキストの追加
スマホでスマホアプリを作る③ スピンボタンとシークバー
スマホでスマホアプリを作る④ 実行ボタン
スマホでスマホアプリを作る シリーズまとめ

外伝
【GAS】電子レンジワット数で加熱時間を換算するwebアプリを作ってみた

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?