TweenBase
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Kelas dasar abstrak untuk penangani antrian dalam antrian; kelas utama dari Tween .
Rangkuman
Properti
Properti baca-hanya yang menunjukkan status saat ini untuk animasi Tween .
Metode
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.
Menghentikan pemutar tween. Tidak mengatur ulang variabel kemajuan tween, yang berarti bahwa jika Anda memanggil TweenBase:Play(), tween akan melanjutkan pemutaran dari saat tertunda.
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()).
Acara
Dibakar saat tween selesai bermain atau saat dihentikan dengan TweenBase:Cancel() .
Properti
PlaybackState
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
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
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
Contoh Kode
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
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
Contoh Kode
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
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
Contoh Kode
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()
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
ENSEMBLE.PLAYBACKSTATUS dari tween setelah selesai.
Contoh Kode
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()