TweenBase
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Abstrakte Basis-Klasse für In-Between-Interpolation-Handler; Eltern-Klasse von Tween .
Zusammenfassung
Eigenschaften
Eigenschaft, die den aktuellen Zustand für die Tween Animationenanzeigt.
Methoden
Stoppt die Wiedergabe und setzt die Tween- Variablen zurück. Wenn Sie dann TweenBase:Play() aufrufen, werden die Eigenschaften der Tween wieder mit ihrem Zielort interpoliert, aber nehmen Sie die gesamte Länge der Animation in Anspruch, um dies zu tun.
Hält die Wiedergabe des Tween. Setzt seine Fortschrittsvariablen nicht zurück, sodass wenn Sie TweenBase:Play() aufrufen, die Wiedergabe vom Moment an fortgesetzt wird, in dem sie angehalten wurde.
Startet die Wiedergabe eines Tween. Beachten Sie, dass, wenn die Wiedergabe bereits gestartet wurde, das Aufrufen von Play() keinen Effekt hat, es sei denn, der Tween terminiert oder wird angehalten (either by TweenBase:Cancel() oder TweenBase:Pause()).
Ereignisse
Feuert, wenn die Anpassung fertig ist, oder wenn sie mit TweenBase:Cancel() aufgehört wird.
Eigenschaften
PlaybackState
Lesen-nur-Eigenschaft, die die aktuelle Stufe für die Tween Animationenanzeigt. Siehe Enum.PlaybackState für Beschreibungen jedes Zustands. Ändern Sie mit Funktionen wie Tween:Play().
Code-Beispiele
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()
Methoden
Cancel
Stoppt die Wiedergabe eines Tween und setzt die Tween- Variablen zurück.
Setzt nur die Tween- Variablen zurück, nicht die Eigenschaften, die vom Tween geändert werden. Wenn Sie eine Tween-Animation mitten durch seine Animationenabbrechen, werden die Eigenschaften nicht auf ihre ursprünglichen Werte zurückgesetzt. Es unterscheidet sich von TweenBase:Pause(), in dem eine Animationenwieder aufgenommen wird, dass die gesamte Dauer der Tween abgeschlossen ist.
Rückgaben
Code-Beispiele
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
Hält die Wiedergabe des Tween. Setzt seine Fortschrittsvariablen nicht zurück, sodass wenn Sie TweenBase:Play() aufrufen, die Wiedergabe vom Moment an fortgesetzt wird, in dem sie angehalten wurde.
Wenn Sie die Fortschrittsvariablen des Tween zurücksetzen möchten, verwenden Sie TweenBase:Cancel() .
Du kannst nur Tweens, die in der PlaybackState von Enum. PlaybackState.Playing anderen Spielstaaten, wie PlaybackState
Rückgaben
Code-Beispiele
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
Startet die Wiedergabe eines Tween. Beachten Sie, dass, wenn die Wiedergabe bereits gestartet wurde, das Aufrufen von Play() keinen Effekt hat, es sei denn, der Tween terminiert oder wird angehalten (either by TweenBase:Cancel() oder TweenBase:Pause()).
Mehrere Teenager können auf demselben Objekt gleichzeitig gespielt werden, aber sie dürfen nicht die gleiche Eigenschaftenanimieren. Wenn zwei Teenager versuchen, die gleiche Eigenschaftenzu ändern, wird der ursprüngliche Tween abgebrochen und überschrieben durch den neuesten Tweet (siehe Beispiele).
Rückgaben
Code-Beispiele
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()
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()
Ereignisse
Completed
Feuert, wenn die Anpassung fertig ist, oder wenn sie mit TweenBase:Cancel() aufgehört wird.
Überträgt die Enum.PlaybackState des Tween an alle verbundenen Funktionen, um anzuzeigen, warum das Tween beendet wurde. Beachten Sie, dass das Aufrufen von TweenBase:Pause() das Completed.
Parameter
Der Enum.PlaybackState des Tween beim Abschluss.
Code-Beispiele
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)
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()
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()