TweenBase
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Abstrakcyjna klasa podstawowa dla wszystkich właściwości w grze w kropki; matka klasy Tween .
Podsumowanie
Właściwości
Własność tylko do czytania, która pokazuje obecny stan dla animacjaTween.
Metody
Zatrzymuje odtwarzanie i ustawia ponownie zmienne tween. Jeśli następnie wezwiesz TweenBase:Play(), to właściwości tween zostaną ponownie zaimportowane w kierunku ich celu, ale weź całą długość animacji, aby to zrobić.
Zatrzymuje odtwarzanie tweena. Nie resetuje jego zmienne postępu, co oznacza, że jeśli wezwiesz TweenBase:Play(), tween odtwarza odtwarzanie od momentu zawieszenia.
Rozpoczyna odtwarzanie zapętza. Uwaga, że jeśli odtwarzanie już się rozpoczęło, wezwanie Play() nie ma efektu, chyba że zapęt zakończy się lub zostanie ponownie uruchomiony (przez TweenBase:Cancel() lub Class.TweenBase:Pause()).
Zdarzenia
Występuje, gdy końcik tween zakończy grać lub gdy zatrzymono z TweenBase:Cancel() .
Właściwości
PlaybackState
Własność tylko do czytania, która pokazuje obecny etap dla animacjaTween. Zobacz Enum.PlaybackState dla opisów każdego stanu. Zmień używając funkcji takich jak Tween:Play().
Przykłady kodu
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()
Metody
Cancel
Zatrzymuje odtwarzanie Tween i zresetuje zmienne tween.
Zresetuje tylko zmienne tween, a nie zmienne właściwości, które są zmieniane przez tween. Jeśli anulujesz tween w połowie jego animacja, zmienne nie zostaną zresetowane do ich pierwotnej wartości. Różni się od TweenBase:Pause() w tym, że po wznowieniu w pełni animacji, trwa czas trwania tweenu do ukończenia animacja.
Zwroty
Przykłady kodu
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
Zatrzymuje odtwarzanie tweena. Nie resetuje jego zmienne postępu, co oznacza, że jeśli wezwiesz TweenBase:Play(), tween odtwarza odtwarzanie od momentu zawieszenia.
Jeśli chcesz zresetować zmienne postępu w tweenie, użyj TweenBase:Cancel() .
Możesz tylko wstrzymać nastolatków, którzy są w PlaybackState``Enum. PlaybackState.Playing ; nastolatków
Zwroty
Przykłady kodu
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
Rozpoczyna odtwarzanie zapętza. Uwaga, że jeśli odtwarzanie już się rozpoczęło, wezwanie Play() nie ma efektu, chyba że zapęt zakończy się lub zostanie ponownie uruchomiony (przez TweenBase:Cancel() lub Class.TweenBase:Pause()).
Wiele nastolatków można grać na tym samym obiekcie w tym samym czasie, ale nie mogą one animować tej samej własności. Jeśli dwa nastolatki próbują zmodyfikować tę samą własność, pierwotny tween jest anulowany i zapisany przez najnowszy tween (patrz przykłady).
Zwroty
Przykłady kodu
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()
Zdarzenia
Completed
Występuje, gdy końcik tween zakończy grać lub gdy zatrzymono z TweenBase:Cancel() .
Przekazuje Enum.PlaybackState tweenu do dowolnej połączonej funkcji, aby dać wskazówkę, dlaczego tween zakończył się. Uwaga, że wezwanie TweenBase:Pause() nie uruchomuje wydarzenia Completed.
Parametry
ENSEGMENT 2 Enum.PlaybackState
Przykłady kodu
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()