鑰匙框順序提供商務服務載入和預覽 Class.KeyframeSequencer|KeyframeSequences . 它包含一些有用的功能,當工作與 Class.Animation|Animations 。
Class.KeyframeSequ 可以存儲一系列 Class.Pose|Poses ,這些屬性料會碼碼樣化動畫的階層和動作。動畫資
範例程式碼
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local function createPreviewAnimation(keyframeSequence)
local hashId = KeyframeSequenceProvider:RegisterKeyframeSequence(keyframeSequence)
local Animation = Instance.new("Animation")
Animation.AnimationId = hashId
return Animation
end
local keyframeSequence = Instance.new("KeyframeSequence")
local animation = createPreviewAnimation(keyframeSequence)
print(animation)
概要
方法
從 KeyframeSequence 生成暫時資產 ID,可用於本地測試動畫。生成一個 active:// 網路。
從 KeyframeSequence 產生暫時資產 ID,可用於本地測試動畫。產生哈希。
此功能返回 InventoryPages 個對象,可以用來重複擁有特定用戶的動畫。
以指定的資產ID 作為鑰匙框順序返回。
屬性
方法
RegisterActiveKeyframeSequence
從 KeyframeSequence 生成暫時資產 ID,可用於本地測試動畫。
此功能執行同一個功能到 KeyframeSequenceProvider:RegisterKeyframeSequence() ,但此功能會生成一個 啟用:// 的 URL,而不是哈希。
產生的 ID 可以用在 Animation.AnimationId 測試屬性上。
這個函數生成的資產 ID 是暫時的,不能在 Studio 外部使用。 開發人員希望生成一個可以在線上使用的資產 ID 的話,應該上傳 KeyframeSequence 到 Roblox。
參數
要使用的 KeyframeSequence。
返回
一個暫時的資產 ID 用於本地化動畫播放。
範例程式碼
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local function createPreviewAnimation(keyframeSequence)
local hashId = KeyframeSequenceProvider:RegisterKeyframeSequence(keyframeSequence)
local Animation = Instance.new("Animation")
Animation.AnimationId = hashId
return Animation
end
local keyframeSequence = Instance.new("KeyframeSequence")
local animation = createPreviewAnimation(keyframeSequence)
print(animation)
RegisterKeyframeSequence
從 KeyframeSequence 生成暫時資產 ID,可用於本地測試動畫。
此功能執行相同的功能至 KeyframeSequenceProvider:RegisterActiveKeyframeSequence() ,但此功能會生成一個哈希而不是一個 active:// 網頁。
產生的 ID 可用於測試動畫的 Animation.AnimationId 屬性。
這個函數生成的資產 ID 是暫時的,不能在 Studio 外部使用。 開發人員希望生成一個可以在線上使用的資產 ID 的話,應該上傳 KeyframeSequence 到 Roblox。
參數
要使用的 KeyframeSequence。
返回
一個暫時的資產 ID 用於本地化動畫播放。
範例程式碼
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local asset = KeyframeSequenceProvider:RegisterKeyframeSequence(workspace.KeyframeSequence)
local animation = Instance.new("Animation")
animation.Name = "TestAnimation"
animation.AnimationId = asset
animation.Parent = workspace
GetAnimations
此功能返回 InventoryPages 個對象,可以用來重複擁有特定用戶的動畫。
這個功能有一些潛在的使用,例如允許用戶瀏覽並匯入動畫到自訂動畫外掛程式。
參數
使用者的ID。
返回
一個 InventoryPages 的動畫。
範例程式碼
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local USER_ID = 0 -- Insert your UserId here
local function extractPages(pagesObject)
local array = {}
while true do
local thisPage = pagesObject:GetCurrentPage()
for _, v in pairs(thisPage) do
table.insert(array, v)
end
if pagesObject.IsFinished then
break
end
pagesObject:AdvanceToNextPageAsync()
end
return array
end
local inventoryPages = KeyframeSequenceProvider:GetAnimations(USER_ID)
local animationIds = extractPages(inventoryPages)
for _, id in pairs(animationIds) do
print(id)
end
print("total: ", #animationIds)
GetKeyframeSequenceAsync
取得 Keyframe SequenceAsync 會將 KeyframeSequence 基於指定的資產ID 返回。資產Id 必須與一個動畫對應。 函數會在 KeyframeSequence 從網站載入時呈現。 因為這是一個網頁呼叫,因此它應該包含在 pcall 中。
參數
動畫的內容ID。
返回
範例程式碼
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local ANIMATION_ID = "rbxassetid://507771019"
-- Get the keyframe sequence for the asset
local keyframeSequence
local success, err = pcall(function()
keyframeSequence = KeyframeSequenceProvider:GetKeyframeSequenceAsync(ANIMATION_ID)
end)
if success then
-- Iterate over each keyframe and print its time value
local keyframeTable = keyframeSequence:GetKeyframes()
for key, value in keyframeTable do
print(`The time of keyframe number {key} is: {value.Time}`)
end
else
print(`Error getting KeyframeSequence: {err}`)
end