概要
LucyスクリプトAPIは、フォーム(画面)のスクリプト内からアプリ・データ・画面フローを制御するプログラミングインターフェースです。ウィジェットを配置するだけでは表現しにくい動作 — ボタンを押したときにデータを要求する、別の画面へ遷移する、サーバーと通信するといった動作 — を実装するときに使います。スクリプトAPIは性質に応じて3つのグループに分かれます。
全体像
| グループ | 何か | スクリプトからの呼び方 |
|---|---|---|
| Lifecycle Events | フォームやデータが特定の時点に達すると、Lucyが自動的に呼び出すコールバック | フォームスクリプトに同じ名前の関数を定義(例: onStart、onMessage) |
| Global Objects | どこからでも使える$グローバルオブジェクト(アプリ・フォーム・データ・通信) | $オブジェクト.メンバー(例: $app.openPage(...)) |
| Widget Methods | 画面のウィジェットを名前(ID)で制御 | widgetID.メンバー(例: textID.setText(...)) |
各グループの概要
Lifecycle Events
フォームやデータが特定の時点に達したときに、Lucyが自動的に呼び出すコールバックです。開発者が直接呼び出すのではなく、決められた名前の関数をフォームスクリプトに定義しておくと、その時点で実行されます。3つに分かれます。
- Form/Page Events — フォームが開き(
onStart)、画面に表示され(onActive)、隠れ(onInactive)、閉じる(onClose)時点。 - Messaging Events — 他のフォームやアプリが送ったメッセージを
onMessage(name, data)で受信。 - Data Lifecycle Events — データ要求・応答・リアルタイムpushの流れの各段階に介入するコールバック。
詳細な一覧はLifecycle Eventsセクションで確認できます。
Global Objects
スクリプトのどこからでも$接頭の名前でそのまま使えるグローバルオブジェクトです。領域ごとに分かれます。
$app— アプリ全体: ページ遷移、共有・保存データ、テーマ、デバイス状態など$form/$parentForm/$ownerForm/$rootForm— 実行中のフォーム: 画面を開く操作、フォーム変数・プロパティ、フォーム間のメッセージ$vm— フォームのデータレイヤー: Data Set・Provider Instanceの取得/更新、要求・購読、ソート$act— イベント応答: Action、State Transition、Detect Transition$log— 診断ログ(d/i/w/e)$http— REST通信(get / post / put / patch / delete / head / options / multipart)$mqtt— MQTT接続(接続オブジェクトMqttClientを返す)
詳細な一覧はGlobal Objectsセクションで確認できます。
Widget Methods
画面に配置したウィジェットをwidgetID.メンバーの形で制御します。2つに分かれます。
- Common Widget Methods — すべてのウィジェットが共通で持つコントロール(プロパティの読み取り/書き込み、スタイル・レイアウト制御、状態など)。
- Individual Widget Methods — ウィジェットの種類ごとに固有のコントロール(例: TextFieldの
setText・getText)。
詳細な一覧はWidget Methodsセクションで確認できます。
表記規約
- 例の
widgetID・textIDなどは、キャンバスでウィジェットに指定した名前(ID)です。スクリプトではwidgetID.メンバーの形でアクセスします。 - グローバルオブジェクトは
$接頭の名前をそのまま使います。 - ライフサイクルイベントは、フォームスクリプトに同じ名前の関数を定義すると、その時点で自動的に実行されます。