TweenBase

Pokaż przestarzałe

*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.

Brak możliwości tworzenia
Brak możliwości przeglądania

Abstrakcyjna klasa podstawowa dla wszystkich właściwości w grze w kropki; matka klasy Tween .

Podsumowanie

Właściwości

Metody

  • Cancel():void

    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ć.

  • Pause():void

    Zatrzymuje odtwarzanie tweena. Nie resetuje jego zmienne postępu, co oznacza, że jeśli wezwiesz TweenBase:Play(), tween odtwarza odtwarzanie od momentu zawieszenia.

  • Play():void

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

Właściwości

PlaybackState

Tylko do odczytu
Bez replikacji
Odczyt równoległy

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

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

Metody

Cancel

void

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

void

Przykłady kodu

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

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

void

Przykłady kodu

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

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

void

Przykłady kodu

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

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

playbackState: Enum.PlaybackState

ENSEGMENT 2 Enum.PlaybackState


Przykłady kodu

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