概要
方法
GetPropertyChangedSignal(property: string):RBXScriptSignal |
活动
Changed(property: string):RBXScriptSignal |
API 参考
属性
ClassName
代码示例
类名
for _, child in workspace:GetChildren() do
if child.ClassName == "Part" then
print("找到一个部件")
-- 将在模型中找到部件,但不会找到 TrussParts、WedgeParts 等
end
endclassName
方法
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("Really red")
part.BrickColor = BrickColor.new("Really blue")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("Really red")
part.BrickColor = BrickColor.new("Institutional white")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 holds a double-precision floating-point number
local vNumber = Instance.new("NumberValue")
vNumber.Changed:Connect(print)
-- 这会触发 Changed,内容为 123.456(而不是 "Value")
vNumber.Value = 123.456
-- 这不会触发 Changed
vNumber.Name = "SomeNumber"
-- A StringValue stores one string
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