TweenBase

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Non Navigabile

Classi di base astratti per i gestori di interpolazione in tempo di interruzione; classe di padre di Tween .

Sommario

Proprietà

Metodi

  • Cancel():void

    Interrompe il riproduzione e ripristina le variabili tween. Se chiami successivamente TweenBase:Play(), le proprietà della tween riprendono l'interpolazione verso la loro destinazione, ma prenderai la lunghezza completa dell'animazione per farlo.

  • Pause():void

    Interrompe la riproduzione del gemellati. Non ripristina le sue variabili di progresso, il che significa che se chiami TweenBase:Play(), il tween riprende la riproduzione dal momento in cui è stato interrotto.

  • Play():void

    Inizia il riproduzione di un gemellati. Nota che se il riproduzione è già iniziato, chiamando Play() non ha effetto a meno che il tween non abbia finito o sia fermato (either by TweenBase:Cancel() o TweenBase:Pause() ).

Proprietà

PlaybackState

Sola Lettura
Non Replicato
Lettura Parallela

Proprietà di proprietà che mostra la fase attuale per l'animazioniTween. Vedi Enum.PlaybackState per le descrizioni di ciascun stato. Modifica utilizzando funzioni come Tween:Play() .

Campioni di codice

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

Metodi

Cancel

void

Interrompe la riproduzione di un Tween e ripristina le variabili tween.

Ripristina solo le variabili tween, non le proprietà che vengono modificate dal gemellati. Se annulli un tween in mezzo alla sua animazioni, le proprietà non vengono ripristinate ai loro valori originali. Differisce da TweenBase:Pause() in cui una volta riprenduto, richiede la durata completa del tween per completare l'animazioni.


Restituzioni

void

Campioni di codice

Tween 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

void

Interrompe la riproduzione del gemellati. Non ripristina le sue variabili di progresso, il che significa che se chiami TweenBase:Play(), il tween riprende la riproduzione dal momento in cui è stato interrotto.

Se vuoi ripristinare le variabili di progresso del gemellati, usa TweenBase:Cancel() .

Puoi solo暂停 tweens che sono in il PlaybackState di Enum. PlaybackState.Playing ; tweens in altri stati non si fermeranno.


Restituzioni

void

Campioni di codice

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

void

Inizia il riproduzione di un gemellati. Nota che se il riproduzione è già iniziato, chiamando Play() non ha effetto a meno che il tween non abbia finito o sia fermato (either by TweenBase:Cancel() o TweenBase:Pause() ).

Più tweens possono essere giocati sullo stesso oggetto allo stesso tempo, ma non devono animare la stessa Proprietà. Se due tweens tentano di modificare la stessa Proprietà, l'animazione iniziale del tween viene cancellata e sovrascritta dal tween più recente (vedi esempi).


Restituzioni

void

Campioni di codice

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

Eventi

Completed

Si attiva quando la tween finisce di giocare o quando viene interrotta con TweenBase:Cancel() .

Passa il Enum.PlaybackState del tween a qualsiasi funzione connessa per fornire un'indicazione su perché il tween è finito. Nota che chiamando TweenBase:Pause() non attiva l'evento Completed.

Parametri

playbackState: Enum.PlaybackState

Il Enum.PlaybackState della tween alla fine.


Campioni di codice

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