オブジェクトのフェードイン・アウト

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




 描画オブジェクトのフェードインとフェードアウトについてです。フェードインは徐々に透明から徐々に描画され、フェードアウトは徐々に透明になる動作です。



基本的な考え方は「オブジェクトの移動」と同様です。
キャンセル・一時停止・再開はこちらを参照してください。
移動関係の各種イベントはこちらを参照してください。


1.関数の説明

 リファレンスを見ると関数と引数は以下の通りです。

transition.fadeIn(target, params)
transition.fadeOut(target, params)


引数名 説明
target フェードイン・アウトさせる対象
params パラメータ

パラメータ
注:パラメータはすべてオプションなので、設定しなくても動作します。

名前 説明
time フェードイン・アウトが完了するまでの時間(ミリ秒)
tag 識別用の名前(キャンセルや一時停止などで使用可能)
transition フェードイン・アウトの仕方(なだらかに加速など)(easingライブラリを指定)
delay 指定時間後にフェードイン・アウトを開始(ミリ秒)
onStart フェードイン・アウトが開始した際に呼び出す関数を指定
onComplete フェードイン・アウトが完了した際に呼び出す関数を指定
onPause フェードイン・アウトが一時停止した際に呼び出す関数を指定
onResume フェードイン・アウトが再開した際に呼び出す関数を指定
onCancel フェードイン・アウトをキャンセルした際に呼び出す関数を指定


2. 「alpha」値について

 フェードイン・フェードアウトを行う場合、重要なポイントがあります。それは対象の「alpha」を設定しておくことです。フェードインでは「alpha」を1.0へ変化、フェードアウトは「alpha」を0.0へ変化させる処理になっています。なので、フェードインする場合、対象の「alpha」には0を入れておかないと何も変わらないということが発生します。


3. サンプル

3.1 フェードイン

local obj1 = display.newRect(100, 100, 50, 50)
obj1:setFillColor(1, 0, 0, 1)
obj1.alpha = 0

local retTransition = transition.fadeIn(obj1, {time = 2000})


3.2 フェードアウト

local obj1 = display.newRect(100, 100, 50, 50)
obj1:setFillColor(1, 0, 0, 1)
obj1.alpha = 1

local retTransition = transition.fadeOut(obj1, {time = 2000})


3.3 フェードアウトしてからフェードイン

local obj1 = display.newRect(100, 100, 50, 50)
obj1:setFillColor(1, 0, 0, 1)
obj1.alpha = 1

local retTransition = transition.fadeOut(obj1, {time = 2000})
local retTransition = transition.fadeIn(obj1, {time = 2000, delay = 2500})


3.4 移動しながらのフェードイン

local obj1 = display.newRect(0, 0, 50, 50)
obj1:setFillColor(1, 0, 0, 1)
obj1.alpha = 0

local retTransition = transition.fadeIn(obj1, {x = 200, y = 200, time = 2000})


3.5 移動しながらのフェードアウト

local obj1 = display.newRect(100, 100, 50, 50)
obj1:setFillColor(1, 0, 0, 1)
obj1.alpha = 1

local retTransition = transition.fadeOut(obj1, {x = 0, y = 0, time = 2000})




       



<更新履歴>

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






前へ          メニューへ          次へ



コメントを残す

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

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