中间插值处理器的抽象基类;Tween 的父级。
概要
方法
停止播放并重置渐变变量。如果你然后调用 TweenBase:Play() , 青少年的属性将继续向目的地交付,但为此需要整个动画的全长。
停止青补间动画的播放。不重置其进度变量,这意味着如果你调用 TweenBase:Play(),青少年将从暂停播放的那一刻恢复播放。
开始播放青补间动画。请注意,如果播放已经开始,调用 Play() 无效,除非青少年已经完成或被停止(通过 TweenBase:Cancel() 或 TweenBase:Pause() )。
活动
当青少年完成游戏或使用 TweenBase:Cancel() 停止时发生火焰。
属性
PlaybackState
只读属性,显示 Tween 动画的当前阶段。见 Enum.PlaybackState 每个状态的描述。更改使用函数如 Tween:Play() 。
代码示例
In this example a part is rotated by a Tween back and forth several times. The TweenInfo in this case is configured to make the tween repeat twice after the first playback and pause between each playback. A function is connected to when the tween's PlaybackState changes. When run, this function will fire whenever the tween starts, pauses between playback, and ends.
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Anchored = true
part.Parent = workspace
local goal = {}
goal.Orientation = Vector3.new(0, 90, 0)
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut, 2, true, 0.5)
local tween = TweenService:Create(part, tweenInfo, goal)
local function onPlaybackChanged()
print("Tween status has changed to:", tween.PlaybackState)
end
local playbackChanged = tween:GetPropertyChangedSignal("PlaybackState")
playbackChanged:Connect(onPlaybackChanged)
tween:Play()
方法
Cancel
停止播放 Tween 并重置渐变变量。
仅重置梯子变量,而不是被补间动画更改的属性如果您在动画中途取消青少年,属性不会重置为原始值。与 TweenBase:Pause() 不同的是,一旦恢复,它需要整个中断期的时间来完成动画。
返回
代码示例
This sample demonstrates the impact of cancelling a tween.
A part is instanced in the Workspace and a tween is set up to move it along the Y axis. Mid way through the tween, it is cancelled. It can be observed here that the part does not return to its original position, but when it is resumed it takes the full length of the tween (5 seconds) to complete.
This is the key difference TweenBase:Pause() and TweenBase:Cancel().
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Anchored = true
part.Parent = workspace
local goal = {}
goal.Position = Vector3.new(0, 50, 0)
local tweenInfo = TweenInfo.new(5)
local tween = TweenService:Create(part, tweenInfo, goal)
tween:Play()
task.wait(2.5)
tween:Cancel()
local playTick = tick()
tween:Play()
tween.Completed:Wait()
local timeTaken = tick() - playTick
print("Tween took " .. tostring(timeTaken) .. " secs to complete")
-- The tween will take 5 seconds to complete as the tween variables have been reset by tween:Cancel()
Pause
停止青补间动画的播放。不重置其进度变量,这意味着如果你调用 TweenBase:Play(),青少年将从暂停播放的那一刻恢复播放。
如果您想重置青少补间动画的进度变量,请使用 TweenBase:Cancel()。
您只能暂停在 中的青少年,其他状态的青少年不会暂停。如果青少年处于不同的 PlaybackState 例如 Enum. PlaybackState.Delayed (由于其 TweenInfo.DelayTime 大于 0 的结果),尝试暂停青少年将失败,青少年将在指定的延迟时间后播放。
返回
代码示例
This sample demonstrates how the playback of a tween can be paused and resumed.
A part is instanced in the Workspace and a tween is setup that will move it 50 studs along the X axis. However during playback the tween is briefly paused, then resumed. To further illustrate this the BrickColor of the part changes from red to green while it is paused.
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Anchored = true
part.BrickColor = BrickColor.new("Bright green")
part.Parent = workspace
local goal = {}
goal.Position = Vector3.new(50, 10, 0)
local tweenInfo = TweenInfo.new(10, Enum.EasingStyle.Linear)
local tween = TweenService:Create(part, tweenInfo, goal)
tween:Play()
task.wait(3)
part.BrickColor = BrickColor.new("Bright red")
tween:Pause()
task.wait(2)
part.BrickColor = BrickColor.new("Bright green")
tween:Play()
Play
开始播放青补间动画。请注意,如果播放已经开始,调用 Play() 无效,除非青少年已经完成或被停止(通过 TweenBase:Cancel() 或 TweenBase:Pause() )。
多个青少年可以同时在同一个对象上播放,但不得动画相同的属性。如果两个青少年尝试修改相同的属性,初始青少年被取消并替换为最新的青少年(见例子)。
返回
代码示例
In this example a Tween is created to animate the position and color of a Part. Because the position and color are part of the same tween, they will change at the exact same rate and will reach their goal at the same time.
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Color = Color3.new(1, 0, 0)
part.Anchored = true
part.Parent = game.Workspace
local goal = {}
goal.Position = Vector3.new(10, 10, 0)
goal.Color = Color3.new(0, 1, 0)
local tweenInfo = TweenInfo.new(5)
local tween = TweenService:Create(part, tweenInfo, goal)
tween:Play()
This code sample includes a demonstration of tween conflict. A part is instanced in the Workspace, and two tweens are created that attempt to move the part in conflicting directions.
When both tweens are played, the first tween is cancelled and overwritten by the second tween. This can be seen as the part moves along the Y axis as opposed to the Z axis.
To further demonstrate this, connections have been made for both tweens to the Tween.Completed event. Upon playing the tweens, the following is printed.
tween1: Enum.PlaybackState.Cancelled tween2: Enum.PlaybackState.Completed
These prints show that the first tween was cancelled (firing the Completed event) immediately upon the second tween being played. The second tween then went on to play until completion.
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Anchored = true
part.Parent = game.Workspace
local tweenInfo = TweenInfo.new(5)
-- create two conflicting tweens (both trying to animate part.Position)
local tween1 = TweenService:Create(part, tweenInfo, { Position = Vector3.new(0, 10, 20) })
local tween2 = TweenService:Create(part, tweenInfo, { Position = Vector3.new(0, 30, 0) })
-- listen for their completion status
tween1.Completed:Connect(function(playbackState)
print("tween1: " .. tostring(playbackState))
end)
tween2.Completed:Connect(function(playbackState)
print("tween2: " .. tostring(playbackState))
end)
-- try to play them both
tween1:Play()
tween2:Play()
活动
Completed
当青少年完成游戏或使用 TweenBase:Cancel() 停止时发生火焰。
将青少年的 Enum.PlaybackState 传给任何连接的函数,以便提供关于青少年结束的原因的指示。请注意,调用 TweenBase:Pause() 不会触发 Completed 事件。
参数
完成时青少年的 Enum.PlaybackState 。
代码示例
In this example the walkspeed of any player joining the game will be slowed to 0 over 10 seconds using a Tween. The Completed event is used to reset the walkspeed after the Tween has finished playing.
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local SLOW_DURATION = 10
local function slowCharacter(humanoid)
local goal = {}
goal.WalkSpeed = 0
local tweenInfo = TweenInfo.new(SLOW_DURATION)
local tweenSpeed = TweenService:Create(humanoid, tweenInfo, goal)
tweenSpeed:Play()
return tweenSpeed
end
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local initialSpeed = humanoid.WalkSpeed
local tweenSpeed = slowCharacter(humanoid)
tweenSpeed.Completed:Wait()
humanoid.WalkSpeed = initialSpeed
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)
This code sample includes a demonstration of tween conflict. A part is instanced in the Workspace, and two tweens are created that attempt to move the part in conflicting directions.
When both tweens are played, the first tween is cancelled and overwritten by the second tween. This can be seen as the part moves along the Y axis as opposed to the Z axis.
To further demonstrate this, connections have been made for both tweens to the Tween.Completed event. Upon playing the tweens, the following is printed.
tween1: Enum.PlaybackState.Cancelled tween2: Enum.PlaybackState.Completed
These prints show that the first tween was cancelled (firing the Completed event) immediately upon the second tween being played. The second tween then went on to play until completion.
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Anchored = true
part.Parent = game.Workspace
local tweenInfo = TweenInfo.new(5)
-- create two conflicting tweens (both trying to animate part.Position)
local tween1 = TweenService:Create(part, tweenInfo, { Position = Vector3.new(0, 10, 20) })
local tween2 = TweenService:Create(part, tweenInfo, { Position = Vector3.new(0, 30, 0) })
-- listen for their completion status
tween1.Completed:Connect(function(playbackState)
print("tween1: " .. tostring(playbackState))
end)
tween2.Completed:Connect(function(playbackState)
print("tween2: " .. tostring(playbackState))
end)
-- try to play them both
tween1:Play()
tween2:Play()
This code sample includes an example of how Tween.Completed can be used to determine if a Tween has been successfully completed, or cancelled.
In this case a part is instanced and tweened towards 0, 0, 0. Once the tween has completed, if the final PlaybackState is Completed then the part will explode. Were the tween to be cancelled prior to completion, the explosion would not be created.
This method can be used to link tweens to other effects, or even chain several tweens to play after each other.
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 50, 0)
part.Anchored = true
part.Parent = workspace
local goal = {}
goal.Position = Vector3.new(0, 0, 0)
local tweenInfo = TweenInfo.new(3)
local tween = TweenService:Create(part, tweenInfo, goal)
local function onTweenCompleted(playbackState)
if playbackState == Enum.PlaybackState.Completed then
local explosion = Instance.new("Explosion")
explosion.Position = part.Position
explosion.Parent = workspace
part:Destroy()
task.delay(2, function()
if explosion then
explosion:Destroy()
end
end)
end
end
tween.Completed:Connect(onTweenCompleted)
tween:Play()