最初のプログラム
目次
もっと便利に
ギャラリーだけでなく、YouTube や QuickPic でも画面の自動回転を設定したい、と思うかもしれません。
設定したいアプリの数だけ、イベントを書いても構いません。…が、この方法は大変です。
こういうときは、状況を少し調整します。「回転開始」を開いて、状況追加します。
状況は「OR (どれかが) 」を選んでください。
すると、また「状況追加」ボタンのある画面が現れます。しかし、今度は「行動追加」はありません。
「状況追加」で、設定したいアプリを全部並べます。
OR (どれかが) >
現在のアプリ >
アプリ:ギャラリー
状態:アプリ起動、または前面化
現在のアプリ >
アプリ:YouTube
状態:アプリ起動、または前面化
現在のアプリ >
アプリ:QuickPic
状態:アプリ起動、または前面化
これで「戻る」ボタンを押すと、「回転開始」イベントの設定に戻ります。
コンディションには次のように表示されているはずです。
[現在アプリがギャラリーなら か 現在アプリがYouTubeなら か 現在アプリがQuickPicなら]
[ ] で囲まれている部分は、条件に OR や AND を使った場合の、ひとまとまりを意味しています。
ただ、このままでは、先に指定した「ギャラリーが表示されているとき」の条件が残っています。これは消しておきましょう。
一番下に消去ボタンがあります。まず消去を押してから、現在のアプリでギャラリーを指定している状況をタップしましょう。
OR だけが残っている状態にしてください。
これで、「回転開始」の調整はおしまいです。
次に、「回転終了」を調整します。
今度は、OR は使わず、そのまま状況追加します。
現在のアプリ >
アプリ:YouTube
状態:アプリ終了、またはバックグランド化
現在のアプリ >
アプリ:QuickPic
状態:アプリ終了、またはバックグランド化
先に「ギャラリー」の状況を指定しているのとあわせて、3つです。
特に OR を使わずに並べてあるので、AND として処理されます。
これで調整終了。イベント一覧の画面に戻ると、それぞれのイベントの内容が表示されています。
[現在アプリがギャラリーなら か 現在アプリがYouTubeなら か 現在アプリがQuickPicなら] - 自動回転有効
回転終了
現在アプリがギャラリーでないなら 現在アプリがYouTubeでないなら 現在アプリがQuickPicでないなら - 自動回転無効
なぜ、開始は OR で指定して、終了は AND で指定するのでしょう?
条件は「アプリの画面が表示されている状態」か、「表示されていない状態」で指定します。
じゃぁ、「ギャラリーが表示されていて、YouTube が表示されている」という状態は起こりえるでしょうか?
それはありえません。だから、AND (全部一致)で指定してはダメです。
OR にしておかないと、回転開始は絶対に実行されません。
逆に、終了条件が OR (どれかが一致)だとどうなるでしょう?
ギャラリーが表示されているときは、YouTube が表示されているはずがありません。
なのに、「YoTube が表示されていない」だけで終了、という条件だと、画面の自動回転は開始した瞬間に終了してしまいます。
デバッグ
Llama は教えられたとおりに、黙々と仕事をこなします。
もし教えたことに矛盾があって「ぜったい実行されない」イベントや、「他のイベントを台無しにしてしまう」イベントがあっても、黙々と仕事します。
複雑な条件を作る時は、よく気をつける必要があります。
なんか動作が変だ、と思ったら、イベントタブの右下、時計マークのボタンを押してみましょう。
実行されたイベントの履歴を見ることができます。
自分の思ったとおりにイベントが実行されていなければ、条件がおかしくないか見直しましょう。
特にイベントが実行されない時でも、Llama のイベントタブでは、状況が現在どうなっているかを表示しています。
緑の状況は、現在「状況が整っている」ものです。
赤い状況は、現在「状況が整っていない」ものです。
OR の場合、内部に緑が1つでもあれば、全体を囲む [ ]が緑色になり、状況が整っていることを示します。