transition

为图像创造效果

Functions
transition.newEasing(action, easingName, more)
创建一个缓动效果
transition.create(action, args)
创建一个动作效果
transition.execute(target, action, args)
执行一个动作效果
transition.rotateTo(target, args)
将显示对象旋转到指定角度,并返回 Action 动作对象。
transition.moveTo(target, args)
将显示对象移动到指定位置,并返回 Action 动作对象。
transition.moveBy(target, args)
将显示对象移动一定距离,并返回 Action 动作对象。
transition.fadeIn(target, args)
淡入显示对象,并返回 Action 动作对象。
transition.fadeOut(target, args)
淡出显示对象,并返回 Action 动作对象。
transition.fadeTo(target, args)
将显示对象的透明度改变为指定值,并返回 Action 动作对象。
transition.scaleTo(target, args)
将显示对象缩放到指定比例,并返回 Action 动作对象。
transition.sequence(actions)
创建一个动作序列对象。
transition.playAnimationOnce(target, animation, removeWhenFinished, onComplete, delay)
在显示对象上播放一次动画,并返回 Action 动作对象。
transition.playAnimationForever(target, animation, delay)
在显示对象上循环播放动画,并返回 Action 动作对象。
transition.removeAction(action)
停止一个正在执行的动作
transition.stopTarget(target)
停止一个显示对象上所有正在执行的动作
transition.pauseTarget(target)
暂停显示对象上所有正在执行的动作
transition.resumeTarget(target)
恢复显示对象上所有暂停的动作

Functions

transition.newEasing()

transition.newEasing(action, easingName, more)

创建一个缓动效果

Parameters

  • Action action 动作对象
  • string easingName 缓冲效果的名字, 具体参考 transition.execute() 方法
  • mixed more 创建缓冲效果的参数

Returns

  • mixed 结果

transition.create()

transition.create(action, args)

创建一个动作效果

Parameters

  • Action action 动作对象
  • table args 参数表格对象

Returns

  • mixed 结果

transition.execute()

transition.execute(target, action, args)

执行一个动作效果


-- 等待 1.0 后开始移动对象 -- 耗时 1.5 秒,将对象移动到屏幕中央 -- 移动使用 backout 缓动效果 -- 移动结束后执行函数,显示 move completed transition.execute(sprite, MoveTo:create(1.5, cc.p(display.cx, display.cy)), { delay = 1.0, easing = "backout", onComplete = function() print("move completed") end, })

transition.execute() 是一个强大的工具,可以为原本单一的动作添加各种附加特性。

transition.execute() 的参数表格支持下列参数:

  • delay: 等待多长时间后开始执行动作
  • easing: 缓动效果的名字及可选的附加参数,效果名字不区分大小写
  • onComplete: 动作执行完成后要调用的函数
  • time: 执行动作需要的时间

transition.execute() 支持的缓动效果:

  • backIn
  • backInOut
  • backOut
  • bounce
  • bounceIn
  • bounceInOut
  • bounceOut
  • elastic, 附加参数默认为 0.3
  • elasticIn, 附加参数默认为 0.3
  • elasticInOut, 附加参数默认为 0.3
  • elasticOut, 附加参数默认为 0.3
  • exponentialIn, 附加参数默认为 1.0
  • exponentialInOut, 附加参数默认为 1.0
  • exponentialOut, 附加参数默认为 1.0
  • In, 附加参数默认为 1.0
  • InOut, 附加参数默认为 1.0
  • Out, 附加参数默认为 1.0
  • rateaction, 附加参数默认为 1.0
  • sineIn
  • sineInOut
  • sineOut

Parameters

  • cc.Node target 显示对象
  • Action action 动作对象
  • table args 参数表格对象

Returns

  • mixed 结果

transition.rotateTo()

transition.rotateTo(target, args)

将显示对象旋转到指定角度,并返回 Action 动作对象。


-- 耗时 0.5 秒将 sprite 旋转到 180 度 transition.rotateTo(sprite, {rotate = 180, time = 0.5})

Parameters

  • cc.Node target 显示对象
  • table args 参数表格对象

Returns

  • mixed 结果

transition.moveTo()

transition.moveTo(target, args)

将显示对象移动到指定位置,并返回 Action 动作对象。


-- 移动到屏幕中心 transition.moveTo(sprite, {x = display.cx, y = display.cy, time = 1.5}) -- 移动到屏幕左边,不改变 y transition.moveTo(sprite, {x = display.left, time = 1.5}) -- 移动到屏幕底部,不改变 x transition.moveTo(sprite, {y = display.bottom, time = 1.5})

Parameters

  • cc.Node target 显示对象
  • table args 参数表格对象

Returns

  • mixed 结果

transition.moveBy()

transition.moveBy(target, args)

将显示对象移动一定距离,并返回 Action 动作对象。


-- 向右移动 100 点,向上移动 100 点 transition.moveBy(sprite, {x = 100, y = 100, time = 1.5}) -- 向左移动 100 点,不改变 y transition.moveBy(sprite, {x = -100, time = 1.5}) -- 向下移动 100 点,不改变 x transition.moveBy(sprite, {y = -100, time = 1.5})

Parameters

  • cc.Node target 显示对象
  • table args 参数表格对象

Returns

  • mixed 结果

transition.fadeIn()

transition.fadeIn(target, args)

淡入显示对象,并返回 Action 动作对象。

fadeIn 操作会首先将对象的透明度设置为 0(0%,完全透明),然后再逐步增加为 255(100%,完全不透明)。

如果不希望改变对象当前的透明度,应该用 fadeTo()。


action = transition.fadeIn(sprite, {time = 1.5})

Parameters

  • cc.Node target 显示对象
  • table args 参数表格对象

Returns

  • mixed 结果

transition.fadeOut()

transition.fadeOut(target, args)

淡出显示对象,并返回 Action 动作对象。

fadeOut 操作会首先将对象的透明度设置为 255(100%,完全不透明),然后再逐步减少为 0(0%,完全透明)。

如果不希望改变对象当前的透明度,应该用 fadeTo()。


action = transition.fadeOut(sprite, {time = 1.5})

Parameters

  • cc.Node target 显示对象
  • table args 参数表格对象

Returns

  • mixed 结果

transition.fadeTo()

transition.fadeTo(target, args)

将显示对象的透明度改变为指定值,并返回 Action 动作对象。


-- 不管显示对象当前的透明度是多少,最终设置为 128 transition.fadeTo(sprite, {opacity = 128, time = 1.5})

Parameters

  • cc.Node target 显示对象
  • table args 参数表格对象

Returns

  • mixed 结果

transition.scaleTo()

transition.scaleTo(target, args)

将显示对象缩放到指定比例,并返回 Action 动作对象。


-- 整体缩放为 50% transition.scaleTo(sprite, {scale = 0.5, time = 1.5}) -- 单独水平缩放 transition.scaleTo(sprite, {scaleX = 0.5, time = 1.5}) -- 单独垂直缩放 transition.scaleTo(sprite, {scaleY = 0.5, time = 1.5})

Parameters

  • cc.Node target 显示对象
  • table args 参数表格对象

Returns

  • mixed 结果

transition.sequence()

transition.sequence(actions)

创建一个动作序列对象。


local sequence = transition.sequence({ cc.MoveTo:create(0.5, cc.p(display.cx, display.cy)), cc.FadeOut:create(0.2), cc.DelayTime:create(0.5), cc.FadeIn:create(0.3), }) sprite:runAction(sequence)

Parameters

  • table args 动作的表格对象

Returns

  • Sequence 动作序列对象

transition.playAnimationOnce()

transition.playAnimationOnce(target, animation, removeWhenFinished, onComplete, delay)

在显示对象上播放一次动画,并返回 Action 动作对象。


local frames = display.newFrames("Walk%04d.png", 1, 20) local animation = display.newAnimation(frames, 0.5 / 20) -- 0.5s play 20 frames transition.playAnimationOnce(sprite, animation)

还可以用 Sprite 对象的 playAnimationOnce() 方法来直接播放动画:


local frames = display.newFrames("Walk%04d.png", 1, 20) local animation = display.newAnimation(frames, 0.5 / 20) -- 0.5s play 20 frames sprite:playAnimationOnce(animation)

playAnimationOnce() 提供了丰富的功能,例如在动画播放完成后就删除用于播放动画的 Sprite 对象。例如一个爆炸效果:


local frames = display.newFrames("Boom%04d.png", 1, 8) local boom = display.newSprite(frames[1]) -- playAnimationOnce() 第二个参数为 true 表示动画播放完后删除 boom 这个 Sprite 对象 -- 这样爆炸动画播放完毕,就自动清理了不需要的显示对象 boom:playAnimationOnce(display.newAnimation(frames, 0.3/ 8), true)

此外,playAnimationOnce() 还允许在动画播放完成后执行一个指定的函数,以及播放动画前等待一段时间。合理运用这些功能,可以大大简化我们的游戏代码。

Parameters

  • cc.Node target 显示对象
  • cc.Node animation 动作对象
  • boolean removeWhenFinished 播放完成后删除显示对象
  • function onComplete 播放完成后要执行的函数
  • number delay 播放前等待的时间

Returns

  • table 动作表格对象

transition.playAnimationForever()

transition.playAnimationForever(target, animation, delay)

在显示对象上循环播放动画,并返回 Action 动作对象。


local frames = display.newFrames("Walk%04d.png", 1, 20) local animation = display.newAnimation(frames, 0.5 / 20) -- 0.5s play 20 frames sprite:playAnimationForever(animation)

Parameters

  • cc.Node target 显示对象
  • cc.Node animation 动作对象
  • number delay 播放前等待的时间

Returns

  • table 动作表格对象

transition.removeAction()

transition.removeAction(action)

停止一个正在执行的动作


-- 开始移动 local action = transition.moveTo(sprite, {time = 2.0, x = 100, y = 100}) .... transition.removeAction(action) -- 停止移动

Parameters

  • mixed target

transition.stopTarget()

transition.stopTarget(target)

停止一个显示对象上所有正在执行的动作


-- 开始移动 transition.moveTo(sprite, {time = 2.0, x = 100, y = 100}) transition.fadeOut(sprite, {time = 2.0}) .... transition.stopTarget(sprite)

注意:显示对象的 performWithDelay() 方法是用动作来实现延时回调操作的,所以如果停止显示对象上的所有动作,会清除该对象上的延时回调操作。

Parameters

  • mixed target

transition.pauseTarget()

transition.pauseTarget(target)

暂停显示对象上所有正在执行的动作

Parameters

  • mixed target

transition.resumeTarget()

transition.resumeTarget(target)

恢复显示对象上所有暂停的动作

Parameters

  • mixed target
update: 2014-09-19 16:07:27, generated by luadocx 1.3