WatchMakerの機能の一つである「Run Script」を試してみました!
最近久しぶりに新しいウォッチフェイスを作っている途中だったのですが、WatchMakerに搭載されている機能の「Run Script」について質問が来たので、色々と試してみました。
Run Scriptについては使い方が良くわからなかったので、今まで使っていませんでした。
ただ、今回使ってみて、これを使えばウォッチフェイスの表現の幅が広がるのではないかと思い、紹介したいと思います。
さて、これから作っていくのは「画像をタッチするととなりの画像が消える」という機能です。
それではやっていきます。
まずはこのように、適当な画像を2つ用意したウォッチフェイスを作成します。
続いて、「Watch Name」を編集するページの下の方にある「Script」というボタンをタップします。
「Watch Name」を編集するページは画面中央左の腕時計マークをタップすればいけます。
「Script」内に以下を記述します。
「Run Script」を選択します。
Run Scriptについては使い方が良くわからなかったので、今まで使っていませんでした。
ただ、今回使ってみて、これを使えばウォッチフェイスの表現の幅が広がるのではないかと思い、紹介したいと思います。
さて、これから作っていくのは「画像をタッチするととなりの画像が消える」という機能です。
それではやっていきます。
Scriptの追加
まずはこのように、適当な画像を2つ用意したウォッチフェイスを作成します。
続いて、「Watch Name」を編集するページの下の方にある「Script」というボタンをタップします。
「Watch Name」を編集するページは画面中央左の腕時計マークをタップすればいけます。
「Script」内に以下を記述します。
var_switch = 0 function switch() if var_switch < 1 then var_switch = var_switch + 1 else var_switch = 0 end end
私は全くプログラミングに詳しくはないのですが、「switch()」が実行された時に「var_switch」という変数が1未満であれば、「var_switch」に1を足す。それ以外であれば「var_switch」を0にする、というものです。
要するに「var_switch」という変数は0と1を行ったり来たりします。
なお、Script内の記述が間違っている場合は、エラーが表示されるので確認してみてください。画像は最後のendが抜けています。
テキストファイルで追加
端末の/sdcard/BeautifulWatchesにWatchMaker用のファイルが入っているのですが、上記画像のwatchesとscript内にはウォッチフェイスとスクリプトの内容が記述されいているファイルが入っています。
/sdcard/BeautifulWatches/watches内のファイルを見てみると、u1.xmlが現在編集中のウォッチフェイスであることが分かります。(u2.xmlなど複数ある場合は1つずつ確認します。)
そこでスクリプトの追加には次の方法を用いる事ができます。
このように先ほど追加したスクリプトをテキストファイルに保存し、「u1.txt」という名前をつけ、/sdcard/BeautifulWatches/scriptへ保存します。
このようにすることでパソコンなどで作成したスクリプトを簡単にWatchMakerへと追加する事ができます。
動作確認
では「画像をタッチするととなりの画像が消える」を実装していきます。
今回は三角形をタップすると、右の四角形が消えるようにします。
三角形を選択し、Tap Actionを選択します。
「Run Script」を選択します。
switch()と入力します。
これにより、三角形をタップした場合、switch()が実行されるようになりました。
続いて四角形を消す方ですが、こちらは透過度を変更します。「Opacity」を選択します。
var_switch == 0 and 100 or 0
このように入力します。
これはvar_switchが0の場合は表示(100)、0以外の場合は非表示(0)というように設定します。
分かりやすくするために、「var_switch」というテキストレイヤを追加しています。
現在はvar_switchが0なので0が表示されています。
最初の画面に戻り、試してみます。
この状態で三角形をタップします。
すると三角形の右の四角形が消え、上の数字が1になります。
つまり、三角形をタップし、var_switchが1になったため、四角形が透明になった、ということです。
今回は非常に簡単なスクリプトを動かしたのですが、色々と遊べそうな機能であると思います。
また、今回は「var_switch」という一つの変数しか使いませんでしたが、複数の変数も扱うことが出来ます。
今作っているものも早く完成させませんと……。
今回の件を別の記事で質問したものです!
返信削除わかりやすい内容の記事を有り難うございました。
記事を確認しながら試してみたところ、ちゃんと出来たので
私のプログラミング能力の皆無さが招いた結果でした(笑)
めげずに良いウォッチフェイスを作りたいと思います!
これからもこちらのブログ応援しています!
出来たのなら何よりです!
削除今回Run Scriptについて質問が来なければ今後も使う機会がなさそうだったので、とても勉強になりました。良い機会をくださりありがとうございます!
今後ともよろしくお願いします!
お世話になっております。
返信削除このWatchMakerでスマートフォン上の通知件数や内容の表示とうは可能なのでしょうか?
また、管理人様はご存知では無いでしょうか?
WatchMaker自体が通知アクセスに対応していないため、単体では不可能ですね。
削除ただ、Taskerで通知を読み取り、それを変数としてWatchMakerに表示させることは可能であると思います。
RunScriptの質問をしたものです。
返信削除管理人様にお尋ねしたいのですが、管理人様が使っているHTC j Butterflyは
HTL23でしょうか?
私はHTL23を使用しWMを利用しているのですが、演算子の< > <= >=等が
使用できないほか、正しく入力されているScriptが機能しないことが多々有ります。
と言うより、ほぼ動かないことが多いです。( == は使用できます)
原因を探しているのですが、機種の相性が悪いのかわからず困っています。
ちなみに再インストール等試しましたが変わりありませんでした。
設定等触れるところやLua言語の拡張等が必要なのでしょうか?
度々の質問で申し訳ありませんが、宜しくお願い致します。
ぱぱすんさん
削除いえ、HTL21の方ですね。
恐らく機種によって使える使えないは無いと思われます。(当方三機種Android 4.4 、5.0、5.1で色々試していますが、不等号が使えないことはありませんでした。)
以下原因と考えられるものを挙げます。
①半角の不等号「<、>」を正確に入力できているかどうか。
②作成したScriptが間違っている。
①に関しては多分大丈夫だと思いますが、念のため確認してみてください。私はIMEは標準で入っているものではなく、Google日本語入力を使っています。
②に関しては他の端末で動くかどうかであると思います。
設定やLua言語については特に設定等する必要はありません。
このような回答しか出来ず申し訳ありません……。
お返事ありがとうございます。
返信削除Google日本語入力ですか参考になります。
サンプル品が動いているので普通に動くはずなのですが。
管理人様のこちらの記事のScriptを動かしても動く時と動かない時が
あるんですよね。。。 謎ですね(笑)
動く時と動かない時が……。
削除この記事のスクリプトでそういった事態になるということは、もしかしたら本当に端末との相性の問題かもしれませんね……。
HTL23を持っていないのでこれ以上はアドバイス出来そうにないです。
本当にすみません……。