Object

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
ไม่ซ้ำ

เป็นคลาสเริ่มต้นสำหรับทุกคลาสในหินคลาสของ Roblox เป็นเรื่องของมารยาททั้งหมดของ Roblox ที่จะมีสมาชิกทั้งหมดของเป็นเรื่องของมารยาททั้งหมด ไม่สามารถสร้างเป็นได้โดยตรง

สรุป

คุณสมบัติ

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    สตริงที่อ่านเท่านั้นที่แทนที่คลาสนี้ Object เป็นของ

วิธีการ

  • รับเหตุการณ์ที่เกิดขึ้นเมื่อสมบัติส่วนหนึ่งของตัวองค์เปลี่ยนแปลง

  • IsA(className : string):bool
    เขียนพร้อมๆ กัน

    กลับ true หากคลาสของวัตถุตรงกับหรือมีความสมบูรณ์จากคลาสที่กำหนด

อีเวนต์

  • ได้รับการยิงทันทีหลังจากเปลี่ยนแปลงสถานะของตัวองค์กับบางข้อจํากัด

คุณสมบัติ

ClassName

อ่านอย่างเดียว
ไม่ซ้ำ
อ่านพร้อมๆ กัน

สตริงที่อ่านเท่านั้นที่แทนที่คลาสนี้ Object เป็นของ

สมบัตินี้สามารถใช้กับตัวแปรอื่น ๆ พิมพ์Object:IsA() หรือ Instance:FindFirstChildOfClass()

หมายเหตุคุณสมบัตินี้อ่านเฉพาะและไม่สามารถเปลี่ยนแปลงได้โดยสคริปต์ ผู้พัฒนาที่ต้องการเปลี่ยนคลาสของวัตถุจะต้องสร้าง Object ใหม่

ในขณะที่ Object:IsA() ไม่สามารถใช้ ClassName เพื่อตรวจสอบว่าวัตถุนั้นเป็นของคลาสที่เฉพาะเจาะจงโดยไม่เกี่ยวข้องกับการมีสมาชิกคลาส โดยเฉพาะ:


for _, child in workspace:GetChildren() do
if child.ClassName == "Part" then
print("Found a Part")
-- will find Parts in model, but NOT TrussParts, WedgeParts, etc
end
end

วิธีการ

GetPropertyChangedSignal

วิธีนี้กลับมาเป็นอีเว้นที่เกิดขึ้นเมื่อคุณสมบัติที่กำหนดได้เปลี่ยนแปลงตามที่เกิดขึ้นจริง ยกเว้นว่ามันจะเพียงแค่ได้รับการเปลี่ยน

ValueBase วัตถุ เช่น IntValue และ StringValue ใช้งาน กิจกรรม 0> Class.Object.Changed|Changed0> ที่ปรับแต่ง ซึ่งจะเปิดใช้งานด้วยเนื้อห

โปรดทราบว่าเหตุการณ์นี้จะไม่ส่งค่าตัวละครที่เปลี่ยนแปลงให้กับฟังก์ชันที่เชื่อมต่อ ดังนั้นค่าของสมบัติที่เปลี่ยนแปลงจะต้องอ่านโดยตรงภายในสคริป

ข้อจํากัด

เหตุการณ์ที่ได้รับการรีเทิร์นโ

นอกจากนี้ การเหตุการณ์ที่กลับมาอาจไม่ได้เกิดขึ้นทุกครั้งที่เปลี่ยนแปลงสมบัติสมบัติบ่อยเกินไป และ/หรืออาจไม่ได้เกิดขึ้นสำหรับสมบัติสมบัติเหล่านี้เลย มันเป็นเรื่องที่แนะนำให้ทดสอบอย่างรอ

พารามิเตอร์

property: string

รายการที่ต้องการเชื่อมต่อ


ส่งค่ากลับ

สัญญาณที่ยิงเมื่ออายุการใช้งานของสินค้าเปลี่ยนแปลง

ตัวอย่างโค้ด

This code sample demonstrates how to save a value before a changed event fires on it in order to get more information about a change.

Old-to-New Values with Changed

local part = Instance.new("Part")
local currentColor = part.BrickColor
local function onBrickColorChanged()
local newColor = part.BrickColor
print("Color changed from", currentColor.Name, "to", newColor.Name)
currentColor = newColor
end
part:GetPropertyChangedSignal("BrickColor"):Connect(onBrickColorChanged)
part.BrickColor = BrickColor.new("Really red")
part.BrickColor = BrickColor.new("Really blue")

This code sample demonstrates the equivalence of the Changed event and event returned by GetPropertyChangedSignal.

Changed and GetPropertyChangedSignal

local part = Instance.new("Part")
local function onBrickColorChanged()
print("My color is now " .. part.BrickColor.Name)
end
local function onChanged(property)
if property == "BrickColor" then
onBrickColorChanged()
end
end
part:GetPropertyChangedSignal("BrickColor"):Connect(onBrickColorChanged)
part.Changed:Connect(onChanged)
-- Trigger some changes (because we connected twice,
-- both of these will cause two calls to onBrickColorChanged)
part.BrickColor = BrickColor.new("Really red")
part.BrickColor = BrickColor.new("Institutional white")

IsA

เขียนพร้อมๆ กัน

IsA จะกลับ true หากคลาสของวัตถุเป็น เทียบเท่ากับ หรือ subclass ของคลาสที่กำหนดไว้ ฟัง

โดยทั่วไป, ฟังก์ชันนี้ใช้เพื่อทดสอบว่าวัตถุเป็นของชนิดใด,


local function paintFigure(character, color)
-- ทำซ้ำเหนือวัตถุลูกของตัวละคร
for _, child in character:GetChildren() do
-- กรองวัตถุที่ไม่ใช่ส่วน เช่นเสื้อเสื้อ
-- R15 ใช้ MeshPart และ R6 ใช้ Part, ดังนั้นเราจึงใช้ BasePart ที่นี่เพื่อตรวจจับทั้งสอง:
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(game.Players.Player.Character, BrickColor.new("Bright blue"))

เนื่องจากทุกคลาสมีการมีสมาชิกจาก Object ดังนั้นการเรียก object:IsA("Object") จะส่งคืนเสมอ

พารามิเตอร์

className: string

คลาสที่ระบุว่าคลาสของวัตถุจะตรวจสอบ


ส่งค่ากลับ

อธิบายว่าคลาสของวัตถุตรงหรือไม่ หรือเป็นคลาสลูกของคลาสที่ให้

ตัวอย่างโค้ด

Demonstrates determining the class of Workspace using Instance:IsA()

Workspace is of class 'Workspace', so the first statement is true. Workspace is not of class 'BasePart', so the second statement is false. Workspace inherits from Instance and therefore is of class 'Instance', so the third statement is true.

Instance:IsA()

local Workspace = game:GetService("Workspace")
print(Workspace:IsA("Workspace")) -- true
print(Workspace:IsA("BasePart")) -- false
print(Workspace:IsA("Instance")) -- true

อีเวนต์

Changed

เหตุการณ์นี้จะเกิดขึ้นทันทีหลังจากที่ค่าสมบัติของวัตถุเปลี่ยนแปลงและทำงานร่วมกับส่วนใหญ่ของกรณีการใช้งาน (ดูข้อจํากัดด้านล่าง) มีค่าใหม่ของวัตถุเปลี่ยนแปลงคือ ไ


object.Changed:Connect(function(property)
print("The new property's value is", object[property])
end)

หากคุณสนใจเฉพาะเกี่ยวกับการเปลี่ยนแปลงของโปรไฟล์ที่เฉพาะเจาะจงเท่านั้น โปรดพิจารณาใช้วิธีการ GetPropertyChangedSignal() แทน

สำหรับวัตถุ ValueBase เช่น IntValue และ StringValue อีเวนต์นี้จะเริ่มเฉพาะเมื่อสมบัติของวัตถุเปลี่ยนแปล

ข้อจํากัด

เหตุการณ์นี้ไม่ได้เกิดขึ้นสำหรับก

นอกจากนี้ เหตุการณ์นี้อาจไม่เกิดขึ้นทุกครั้งที่เปลี่ยนแปลงสมบัติสินค้าที่เปลี่ยนแปลงบ่อยมากหรือไม่ และ/หรืออาจไม่เกิดขึ้นเลยสำหรับสมบัติสินค้าดังกล่าวทั้งหมด มันเป็นการแนะนำให้คุณทดสอบอ

พารามิเตอร์

property: string

ชื่อของสมบัติที่เปลี่ยนแปลง


ตัวอย่างโค้ด

This sample demonstrates the subtleties of the Changed event on normal objects and "-Value" objects.

Changed Event

-- Demonstrate the Changed event by creating a Part
local part = Instance.new("Part")
part.Changed:Connect(print)
-- This fires Changed with "Transparency"
part.Transparency = 0.5
-- Similarly, this fires Changed with "Number"
part.Name = "SomePart"
-- Since changing BrickColor will also change other
-- properties at the same time, this line fires Changed
-- with "BrickColor", "Color3" and "Color3uint16".
part.BrickColor = BrickColor.Red()
-- A NumberValue holds a double-precision floating-point number
local vNumber = Instance.new("NumberValue")
vNumber.Changed:Connect(print)
-- This fires Changed with 123.456 (not "Value")
vNumber.Value = 123.456
-- This does not fire Changed
vNumber.Name = "SomeNumber"
-- A StringValue stores one string
local vString = Instance.new("StringValue")
vString.Changed:Connect(print)
-- This fires Changed with "Hello" (not "Value")
vString.Value = "Hello"

This code sample demonstrates the Changed event firing within a parent object.

Change Detector

local object = script.Parent
local function onChanged(property)
-- Get the current value of the property
local value = object[property]
-- Print a message saying what changed
print(object:GetFullName() .. "." .. property .. " (" .. typeof(value) .. ") changed to " .. tostring(value))
end
object.Changed:Connect(onChanged)
-- Trigger a simple change in the object (add an underscore to the name)
object.Name = "_" .. object.Name