ユーザー操作に合わせてロジックを作ろう!


イベントとは

ユーザーの操作には以下のようなものがあります。

  • 「文字や数値をキーボードで入力する」
  • 「画面をタッチする」
  • 「画面をスワイプする」

Curlには上記のようなユーザー操作を処理する場合に「イベント」というものがあります。

Screenクラスの中で{on … do}という記述があります。これはイベント処理の部分です。「on」はマクロです。詳しくはCurl ドキュメントの「on(マクロ)」を参照してください。「on」の後に続く部分には「Actionクラス」だけでなく「PointerPressイベントクラス」「Tapイベントクラス」「KeyPressクラス」といったクラスを指定することができます。下記サンプルコードではCommandButtonをユーザーが押したときの処理として、Actionクラスを使用しています。対象は「COM.CAEDE.CAEDESAMPLE」内の「sparent-edit.scurl」内の「SParentEditScreen」クラスの「constructor」内です。押した時に「 11. データを管理しよう! 」で解説をしたedit-rows-to-dbプロシージャを呼び出し編集されたTextfield(tf-nameなど)の値をパラメータとして渡しています。これによりSQLiteデータベースにデータが保存されます。またそのあとにchange-pageメソッドを呼び出し詳細画面(SParentDetail)へ遷移させています。

「sparent-edit.scurl」の「SParentEditScreen」クラスの「constructor」

カメラの起動にはFrameクラスにPointerPressイベントを設定することでタッチすると起動できるような設定になっています。またカメラ起動が終了したときに発生するイベントがCameraFinishedEventです。CameraFinishedEventクラスはさまざまなステータスや保存された画像の場所などを持っており、このイベントが発生したときにSimpleImageGraphicのsourceアクセサを使用してCameraFinishedEventクラスのmedia-urlアクセサから画像が保存された場所を取得して表示されている画像をいれかえる処理を設定しています。対象は「CAEDE.SAMPLE.PACKAGE」内の「edit-body-block.scurl」内の「EditBodyBlockScreen」クラスの「constructor」内です。

「new-and-update.scurl」の「NewUpdateScreen」クラスの「constructor」