概要
方法
GetPropertyChangedSignal(property: string):RBXScriptSignal |
活動
Changed(property: string):RBXScriptSignal |
API 參考
屬性
className
方法
GetPropertyChangedSignal
參數
範例程式碼
舊至新值的變更
local part = Instance.new("Part")
local currentColor = part.BrickColor
local function onBrickColorChanged()
local newColor = part.BrickColor
print("顏色從", currentColor.Name, "變更為", newColor.Name)
currentColor = newColor
end
part:GetPropertyChangedSignal("BrickColor"):Connect(onBrickColorChanged)
part.BrickColor = BrickColor.new("非常紅")
part.BrickColor = BrickColor.new("非常藍")Changed 和 GetPropertyChangedSignal
local part = Instance.new("Part")
local function onBrickColorChanged()
print("我的顏色現在是 " .. part.BrickColor.Name)
end
local function onChanged(property)
if property == "BrickColor" then
onBrickColorChanged()
end
end
part:GetPropertyChangedSignal("BrickColor"):Connect(onBrickColorChanged)
part.Changed:Connect(onChanged)
-- 觸發一些更改(因為我們連接了兩次,
-- 這兩次都會導致 onBrickColorChanged 被調用兩次)
part.BrickColor = BrickColor.new("真紅色")
part.BrickColor = BrickColor.new("機構白")IsA
isA
活動
Changed
參數
範例程式碼
變更事件
-- 通過創建一個 Part 來演示 Changed 事件
local part = Instance.new("Part")
part.Changed:Connect(print)
-- 這會觸發 Changed,使用 "Transparency"
part.Transparency = 0.5
-- 同樣,這會觸發 Changed,使用 "Number"
part.Name = "SomePart"
-- 由於改變 BrickColor 也會同時改變其他
-- 屬性,因此這行會觸發 Changed
-- 使用 "BrickColor", "Color3" 和 "Color3uint16"。
part.BrickColor = BrickColor.Red()
-- A NumberValue 保持一個雙精度浮點數
local vNumber = Instance.new("NumberValue")
vNumber.Changed:Connect(print)
-- 這會觸發 Changed,使用 123.456(而不是 "Value")
vNumber.Value = 123.456
-- 這不會觸發 Changed
vNumber.Name = "SomeNumber"
-- A StringValue 儲存一個字串
local vString = Instance.new("StringValue")
vString.Changed:Connect(print)
-- 這會觸發 Changed,使用 "Hello"(而不是 "Value")
vString.Value = "Hello"變更偵測器
local object = script.Parent
local function onChanged(property)
-- 獲取屬性的當前值
local value = object[property]
-- 打印一條訊息說明發生了什麼變更
print(object:GetFullName() .. "." .. property .. " (" .. typeof(value) .. ") 變更為 " .. tostring(value))
end
object.Changed:Connect(onChanged)
-- 觸發物件中的簡單變更 (在名稱前加上下劃線)
object.Name = "_" .. object.Name