TweenBase

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Nicht durchsuchbar

Abstrakte Basisklasse für Zwischeninterpolation-Handler; Elternklasse von Tween.

Zusammenfassung

Eigenschaften

Methoden

  • Cancel():()

    Stoppt die Wiedergabe und setzt die Zwölf-变量 zurück.Wenn du dann aufrufst TweenBase:Play(), werden die Eigenschaften des Zwischenstopps der Animation interpoliert, um zu ihrer Destination fortzufahren, aber die volle Länge der Animation wird benötigt, um dies zu tun.

  • Pause():()

    Stoppt die Wiedergabe des Tween.Setzt seine Fortschrittsvariablen nicht zurück, was bedeutet, dass, wenn du TweenBase:Play() anrufst, der Teenager die Wiedergabe vom Moment an fortsetzt, in dem sie unterbrochen wurde.

  • Play():()

    Startet die Wiedergabe eines Tween.Beachten Sie, dass wenn die Wiedergabe bereits begonnen hat, das Anrufen von Play() keine Wirkung hat, es sei denn, der Teenager hat sich fertiggestellt oder wurde gestoppt (entweder durch TweenBase:Cancel() oder TweenBase:Pause() ).

Ereignisse

Eigenschaften

PlaybackState

Schreibgeschützt
Nicht repliziert
Parallel lesen

Lesbare Eigenschaft, die die aktuelle Phase für die Tween Animationenzeigt.Siehe Enum.PlaybackState für Beschreibungen jedes Zustands.Ändern mit Funktionen wie Tween:Play().

Code-Beispiele

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.

Tween PlaybackState

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 Zwischen变量 zurück.

Setzt nur die Teenager-Variablen zurück, nicht die Eigenschaften, die vom Teenager geändert werden.Wenn du eine Zwischensequenz während der Animationenabbrichst, werden die Eigenschaften nicht auf ihre ursprünglichen Werte zurückgesetzt.Unterscheidet sich von TweenBase:Pause() dadurch, dass es, sobald es wieder aufgenommen wird, die volle Dauer des Tween benötigt, um die Animationenabzuschließen.


Rückgaben

()

Code-Beispiele

Dieses Beispiel zeigt den Einfluss der Stornierung eines Tweens.

Ein Teil wird im Arbeitsbereich instanziert und ein Zwischenschritt wird eingerichtet, um es entlang der Y-Achse zu verschieben.Mitte durch den Teenager hindurch wird es abgebrochen.Es kann hier beobachtet werden, dass das Teil nicht in seine ursprüngliche Position zurückkehrt, aber wenn es fortgesetzt wird, dauert es die volle Länge des Tween (5 Sekunden) um abzuschließen.

Dies ist der wesentliche Unterschied zwischen TweenBase:Pause() und TweenBase:Cancel().

Teenager-Stornierung

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

()

Stoppt die Wiedergabe des Tween.Setzt seine Fortschrittsvariablen nicht zurück, was bedeutet, dass, wenn du TweenBase:Play() anrufst, der Teenager die Wiedergabe vom Moment an fortsetzt, in dem sie unterbrochen wurde.

Wenn du die Fortschrittsvariablen des Tweens zurücksetzen möchtest, verwende TweenBase:Cancel().

Du kannst nur Teenager pausieren, die sich im PlaybackState von Enum. PlaybackState.Playing befinden; Teenager in anderen Staaten werden nicht pausieren.Wenn ein Teenager sich in einem anderen PlaybackState befindet, wie Enum. PlaybackState.Delayed (als Ergebnis seiner TweenInfo.DelayTime größer als 0), wird die Pause des Teenagers fehlschlagen und der Teenager wird nach seiner angegebenen Verzögerungszeit abgespielt.


Rückgaben

()

Code-Beispiele

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.

Pausing a Tween

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 begonnen hat, das Anrufen von Play() keine Wirkung hat, es sei denn, der Teenager hat sich fertiggestellt oder wurde gestoppt (entweder durch TweenBase:Cancel() oder TweenBase:Pause() ).

Mehrere Teenager können gleichzeitig auf demselben Objekt gespielt werden, aber sie dürfen nicht die gleiche Eigenschaftenanimieren.Wenn zwei Teenager versuchen, die gleiche Eigenschaftenzu modifizieren, wird der initiale Teenager abgebrochen und durch den jüngsten Teenager überschrieben (siehe Beispiele).


Rückgaben

()

Code-Beispiele

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.

Tween Creation

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.

Tween Conflict

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 der Teenager die Wiedergabe beendet oder mit TweenBase:Cancel() gestoppt wird.

Überträgt das Enum.PlaybackState des Teenagers an alle verbundenen Funktionen, um eine Indikation dafür zu geben, warum der Teenager beendet wurde.Beachten Sie, dass das Anrufen von TweenBase:Pause() nicht das Ereignis Completed auslöst.

Parameter

playbackState: Enum.PlaybackState

Das Enum.PlaybackState des Teenagers bei Fertigstellung.


Code-Beispiele

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.

Tween Completed

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.

Tween Conflict

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.

Verifying a Tween has Completed

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()