はじめに
@OnTheRocks_plzさん、@qbxxdpさんの「ヌルっとON/OFFボタン」に触発されて、チャレンジしたみたので、その記録。できるかどうか分からないのにチャレンジするのと、できると分かってチャレンジするのは、雲泥の差。しかも、できると分かってチャンレンジしても、全く分からないヤツもある。
実際の動き
検証環境
macOS Monterey 12.0.1, FileMaker Pro 19.4.1
解説
サンプルファイルを見れば分かると思いますが、簡単な解説。
- 11個のボタンを設定したボタンバーを用意。
- 各ボタンのアイコンとして、トグルスイッチのアニメーションを11分割したも画像を設定する。
- 各ボタンは、グローバル変数が、各数値に合わない時は「隠す」設定にしておく。
- 0と1に相当するボタンに、トグルスイッチを変更するスクリプトを設定する。
- グローバル変数は0から1まで0.1刻みでループで変化させる。
- ボタンバーは最強らしい。
これでヌルっと動く。トグルするグローバル変数も0.1刻みで値が変更していくので、0/1で値を判定させている場合には、少し注意を要する。
グローバル変数の管理方法についてはこちらの記事を参照してください。導入の仕方での2個目の導入時においても、関数名を変更するだけで、スクリプトやオブジェクトに設定されているグローバル変数の呼び出し全ての名前が変わるのも、メンテナンス的に役立つ。
導入の仕方
- カスタム関数をインポート。
サンプルファイルから、"Set.Toggle"、"Get.Toggle"の2つの関数をインポートする。 - スクリプトをインポート。
サンプルファイルから、"button_Toggle_Switch()"スクリプトをインポートする。 - レイアウトオブジェクトをコピー&ペースト。
サンプルファイルのレイアウトから、該当オブジェクト(ボタンバー)をコピーし、導入先へペーストする。
もし、2個目のトグルスイッチを導入したい場合には、サンプルファイル上で、
- カスタム関数の名前を変更。
サンプルファイルで、"Set.Toggle"、"Get.Toggle"の2つの関数を、たとえば"Set.Toggle2"、"Get.Toggle2"に変更する。この時、それぞれの関数内で用いられているグローバル変数名も同様に変更しておく。 - スクリプトの名前を変更。
サンプルファイルで、"button_Toggle_Switch()"スクリプトを、たとえば"button_Toggle_Switch2()"に変更する。
あとは初回導入時と同じ手順を踏む。
サンプルファイル
GitHubからダウンロードできます。
アカウントはadmin、user、fm1の3つが用意されており、いずれのパスワードもアカウントと同じです。いずれのアカウントも完全アクセスにしてあります。
ファイルオプションでuserでログインするようにしてあります。
未解決課題
「ショウリュウケン」や「ハイパーオリンピック」は仕組みがさっぱり想像つかない。@p388cellさんの「うごく五輪」も全く分からない。誰か偉いヒト解説して。