TweenBase

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Không Thể Tạo
Không Thể Duyệt

Lớp cơ sở dữ liệu cho các hành động trong giữa; lớp cha của Tween .

Tóm Tắt

Thuộc Tính

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Tính sở hữu chỉ đọc, hiển thị trạng thái hiện tại cho hiệu ứng độnghọa Tween .

Phương Pháp

  • Cancel():void

    Dừng lại quả chơi và đặt lại biến tween. Nếu bạn sau đó gọi TweenBase:Play() , các tính năng của tween tổng hợp lại về mục đích của chúng, nhưng lấy toàn bộ chiều dài của hoạt họa để làm điều đó.

  • Pause():void

    Ngưng phát lại tween. Không đặt lại các biến tiến độ của nó, có nghĩa là nếu bạn gọi TweenBase:Play() , tween sẽ bắt đầu phát lại từ lúc nó đã tạm dừng.

  • Play():void

    Bắt đầu chơi lại một tween. Lưu ý rằng nếu chơi đã bắt đầu, gọi Play() không có hiệu lực trừ khi tween đã hoàn thành hoặc bị dừng (bằng cách gọi TweenBase:Cancel() hoặc TweenBase:Pause()).

Thuộc Tính

PlaybackState

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Tính chất đọc chỉ để hiển thị giai đoạn hiện tại cho hoạt họa Tween. Tham khảo Enum.PlaybackState để mô tả mỗi giai đoạn. Đổi bằng các chức năng như Tween:Play() .

Mẫu mã

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

Phương Pháp

Cancel

void

Ngưng chơi lại của một Tween và thiết lập lại các biến tween.

Chỉ đặt lại biến tween, không phải là thay đổi đặc tính bởi tween. Nếu bạn huỷ tween giữa qua hoạt hiệu ứng độngcủa nó, các đặc tính sẽ không được đặt lại đến giá trị nguyên bản của chúng. Khi khác đã khởi động lại, nó sẽ mấ


Lợi Nhuận

void

Mẫu mã

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

Ngưng phát lại tween. Không đặt lại các biến tiến độ của nó, có nghĩa là nếu bạn gọi TweenBase:Play() , tween sẽ bắt đầu phát lại từ lúc nó đã tạm dừng.

Nếu bạn muốn đặt lại tiến độ của biến trong tween, hãy sử dụng TweenBase:Cancel() .

Bạn chỉ có thể tạm dừng những thiếu niên đang ở trong PlaybackState của En


Lợi Nhuận

void

Mẫu mã

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

Bắt đầu chơi lại một tween. Lưu ý rằng nếu chơi đã bắt đầu, gọi Play() không có hiệu lực trừ khi tween đã hoàn thành hoặc bị dừng (bằng cách gọi TweenBase:Cancel() hoặc TweenBase:Pause()).

Nhiều thiếu niên có thể được chơi trên cùng một đối tượng vào cùng một thời điểm, nhưng họ không thể hoạt hóa cùng một tính năng. Nếu hai thiếu niên cố gắng điều chỉnh cùng một tính năng, thì tween ban đầu sẽ bị huỷ và đổi bằng tính năng mới nhất (xem ví dụ).


Lợi Nhuận

void

Mẫu mã

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

Sự Kiện

Completed

Lửa khi tween xong chơi hoặc khi bị dừng lại với TweenBase:Cancel() .

Truyền Amount.PlaybackState của tween đến bất kỳ chức năng kết nối nào để cho thấy lý do tại sao tween kết thúc. Lưu ý rằng gọi Class.TweenBase:Pause() không kích hoạt sự kiện TweenBase:Pause() .

Tham Số

playbackState: Enum.PlaybackState

ENSEARCH.PLAYBACK_STATUS của tween khi hoàn thành.


Mẫu mã

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