描画オブジェクトの移動(transition)関係のイベントについてです。イベントとは、移動の開始や完了時など特定の条件になった際に発生し、指定した処理を実行するようにするための構造です。移動(transition)で使用することができるイベントは以下の通りです。関数によっては使用できないものもあるので、それぞれ使用する関数の仕様を確認してください。
今回、サンプルで掲載するソースでは。transition.to()関数を使用しています。
1. 各種イベント
名前 | 説明 |
---|---|
onStart | 移動が開始した際に呼び出す関数を指定 |
onComplete | 移動が完了した際に呼び出す関数を指定 |
onPause | 移動が一時停止した際に呼び出す関数を指定 |
onResume | 移動が再開した際に呼び出す関数を指定 |
onCancel | 移動をキャンセルした際に呼び出す関数を指定 |
onRepeat | 移動が完了し繰り返し実行する際に呼び出す関数を指定 |
2. イベント発生時に処理を実行するようにする
イベント発生時に処理を実行させるためには、そのイベントに対して関数を登録します。移動(transition)では、どのイベントでもプログラムの作成方法は同様なので、onStartをサンプルとして説明します。
onStartは移動を開始した際に発生するイベントです。delayを使用して開始を遅らせた際などに使用すると、移動の開始を確認することができます。
下記サンプルを実行すると、以下のような動きになります。
- 赤い四角が座標(100, 100)に表示
- 2秒間何も変化なし
- その後(2秒経過後)、「OnStart」関数を実行
- 続いて赤い四角が座標(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 |