移動関係のイベント

このエントリーをはてなブックマークに追加




 描画オブジェクトの移動(transition)関係のイベントについてです。イベントとは、移動の開始や完了時など特定の条件になった際に発生し、指定した処理を実行するようにするための構造です。移動(transition)で使用することができるイベントは以下の通りです。関数によっては使用できないものもあるので、それぞれ使用する関数の仕様を確認してください。
 今回、サンプルで掲載するソースでは。transition.to()関数を使用しています。


1. 各種イベント

名前 説明
onStart 移動が開始した際に呼び出す関数を指定
onComplete 移動が完了した際に呼び出す関数を指定
onPause 移動が一時停止した際に呼び出す関数を指定
onResume 移動が再開した際に呼び出す関数を指定
onCancel 移動をキャンセルした際に呼び出す関数を指定
onRepeat 移動が完了し繰り返し実行する際に呼び出す関数を指定


2. イベント発生時に処理を実行するようにする

 イベント発生時に処理を実行させるためには、そのイベントに対して関数を登録します。移動(transition)では、どのイベントでもプログラムの作成方法は同様なので、onStartをサンプルとして説明します。
 onStartは移動を開始した際に発生するイベントです。delayを使用して開始を遅らせた際などに使用すると、移動の開始を確認することができます。
 下記サンプルを実行すると、以下のような動きになります。

  1. 赤い四角が座標(100, 100)に表示
  2. 2秒間何も変化なし
  3. その後(2秒経過後)、「OnStart」関数を実行
  4. 続いて赤い四角が座標(200, 200)へ移動

— 移動させるオブジェクトを作成
local obj1 = display.newRect(100, 100, 30, 30)
obj1:setFillColor(1, 0, 0, 1)

— 移動を開始した際に実行する関数を作成(今回はデバッグ画面に文字を出力するだけです)
— 関数名は自由に設定してください。
local function OnStart()
    print("OnStart")
end

— 移動登録
— delayで2秒後に移動を開始
— onStartに上記で作成した関数「OnStart」を呼び出すように登録
local retTransition = transition.to(obj1, {x = 200, y = 200, time = 1000, delay = 2000, onStart = OnStart})



 複数(各イベント)に関数を登録したい場合、「onComplete = 関数」と言った具合に増やしていきます。ただ、項目が増えるとプログラムの可読性が悪くなってしまいます。その場合、第2引数はテーブルなので、先にテーブルを作成してから登録するようにすると、比較的見やすいと思います。

— 移動させるオブジェクトを作成
local obj1 = display.newRect(100, 100, 30, 30)
obj1:setFillColor(1, 0, 0, 1)

— 移動を開始した際に実行する関数
local function OnStart()
    print("OnStart")
end

— 移動が完了した際に実行する関数
local function OnComplete()
    print("OnComplete")
end

— 移動に使用するテーブルの作成
local transitionTable = {
    x = 200,
    y = 200,
    time = 1000,
    delay = 2000,
    onStart = OnStart,
    onComplete = OnComplete,
}


— 移動
local retTransition = transition.to(obj1, transitionTable)




       



<更新履歴>

更新日 Corona SDKのバージョン
新規作成 2015年9月7日 v2015.2646






前へ          メニューへ



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)