TweenBase
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Classi di base astratti per i gestori di interpolazione in tempo di interruzione; classe di padre di Tween .
Sommario
Proprietà
Proprietà di proprietà che mostra lo stato attuale per l'animazioniTween .
Metodi
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.
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.
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() ).
Eventi
Si attiva quando la tween finisce di giocare o quando viene interrotta con TweenBase:Cancel() .
Proprietà
PlaybackState
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
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
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
Campioni di codice
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
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
Campioni di codice
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
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
Campioni di codice
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()
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
Il Enum.PlaybackState della tween alla fine.
Campioni di codice
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()