TweenBase

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Tidak Dapat Dijelajahi

Kelas dasar abstrak untuk penangani antrian dalam antrian; kelas utama dari Tween .

Rangkuman

Properti

Metode

  • Cancel():void

    Menghentikan pemutar dan mengatur ulang variabel tween. Jika Anda kemudian memanggil TweenBase:Play(), proporsi tween mereka berakhir setelah interpolasi ke tujuan mereka, tetapi ambil panjang animasi untuk melakukannya.

  • Pause():void

    Menghentikan pemutar tween. Tidak mengatur ulang variabel kemajuan tween, yang berarti bahwa jika Anda memanggil TweenBase:Play(), tween akan melanjutkan pemutaran dari saat tertunda.

  • Play():void

    Memulai pemutaran tween. Catat bahwa jika pemutaran telah dimulai, menelepon Play() tidak berpengaruh kecuali tween telah selesai atau dihentikan (untuk menghentikan, TweenBase:Cancel() atau Class.TweenBase:Pause()).

Properti

PlaybackState

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti baca-hanya yang menunjukkan tahap saat ini untuk animasi Tween. Lihat Enum.PlaybackState untuk deskripsi masing-masing negara. Ganti menggunakan fungsi seperti Tween:Play().

Contoh Kode

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

Metode

Cancel

void

Menghentikan pemutaran dari Tween dan mengatur ulang variabel tween.

Hanya mengatur ulang variabel tween, bukan properti yang diubah oleh tween. Jika Anda menyetel ulang tween setengah melalui animasi, properti tidak akan diatur ulang ke nilai aslinya. Berbeda dari TweenBase:Pause() di mana setel ulang, durasi tween penuh diperlukan untuk menyelesaikan animasi.


Memberikan nilai

void

Contoh Kode

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

Menghentikan pemutar tween. Tidak mengatur ulang variabel kemajuan tween, yang berarti bahwa jika Anda memanggil TweenBase:Play(), tween akan melanjutkan pemutaran dari saat tertunda.

Jika Anda ingin mengatur ulang variabel kemajuan tween, gunakan TweenBase:Cancel() .

Anda hanya dapat menghentikan tweens yang berada dalam PlaybackState dari Enum. PlaybackState.Playing ; tweens di neg


Memberikan nilai

void

Contoh Kode

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

Memulai pemutaran tween. Catat bahwa jika pemutaran telah dimulai, menelepon Play() tidak berpengaruh kecuali tween telah selesai atau dihentikan (untuk menghentikan, TweenBase:Cancel() atau Class.TweenBase:Pause()).

Beberapa remaja dapat dimainkan pada objek yang sama pada saat yang sama, tetapi mereka tidak boleh menganimasikan properti yang sama. Jika dua remaja mencoba untuk mengubah properti yang sama, tween awal dibatalkan dan ditulis ulang oleh tween terbaru (lihat contoh).


Memberikan nilai

void

Contoh Kode

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

Acara

Completed

Dibakar saat tween selesai bermain atau saat dihentikan dengan TweenBase:Cancel() .

Mengembalikan Enum.PlaybackState dari tween ke fungsi terhubung untuk memberikan indikasi mengapa tween berakhir. Catat bahwa memanggil TweenBase:Pause() tidak mengecualikan acara Completed.

Parameter

playbackState: Enum.PlaybackState

ENSEMBLE.PLAYBACKSTATUS dari tween setelah selesai.


Contoh Kode

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