概要
方法
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("真正的蓝色")更改和获取属性更改信号
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 和 "透明度"
part.Transparency = 0.5
-- 类似地,这会触发 Changed 和 "数字"
part.Name = "SomePart"
-- 由于更改 BrickColor 还会同时更改其他
-- 属性,因此此行会触发 Changed
-- 和 "BrickColor","Color3" 以及 "Color3uint16"。
part.BrickColor = BrickColor.Red()
-- A NumberValue holds a double-precision floating-point number
local vNumber = Instance.new("NumberValue")
vNumber.Changed:Connect(print)
-- 这会触发 Changed 和 123.456(而不是 "值")
vNumber.Value = 123.456
-- 这不会触发 Changed
vNumber.Name = "SomeNumber"
-- A StringValue stores one string
local vString = Instance.new("StringValue")
vString.Changed:Connect(print)
-- 这会触发 Changed 和 "Hello"(而不是 "值")
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