แสดงวัตถุและรายการแสดงผล
"แสดงวัตถุ" ความหมายที่แน่นอนของ "การแสดงวัตถุ" เป็นวัตถุที่สามารถแสดงบนเวที วัตถุที่สามารถแสดงได้รวมถึงกราฟิกข้อความวิดีโอรูปภาพ ฯลฯ ที่สามารถมองเห็นได้โดยตรงรวมถึงแสดงคอนเทนเนอร์วัตถุที่ไม่สามารถมองเห็นได้ แต่เป็นของจริง
ใน egret กราฟิกภาพทั้งหมดประกอบด้วยวัตถุที่แสดงและแสดงคอนเทนเนอร์วัตถุ
หากเราต้องการแสดงฉากในภาพด้านบนเราจะอธิบายได้อย่างไรในแบบต้นไม้?
แสดงโครงสร้างลำดับชั้นของวัตถุ
ใน egret วัตถุที่แสดงจะแบ่งออกเป็นสองหมวดหมู่: หนึ่งคือคอนเทนเนอร์วัตถุที่แสดงผลที่สามารถรวมวัตถุที่แสดงอื่น ๆ ที่เรียกว่า "คอนเทนเนอร์" อีกประเภทหนึ่งคือวัตถุแสดงผลง่าย ๆ ซึ่งไม่สามารถรวมวัตถุที่แสดงอื่น ๆ ยกเว้นตัวเองและเรียกว่า "วัตถุที่ไม่ใช่ container"
ในการดำเนินงานจริงเราสามารถมองว่าโครงสร้างดังกล่าวเป็นโครงสร้างต้นไม้ภาชนะบรรจุสามารถเข้าใจได้ว่าเป็นสาขาและวัตถุที่ไม่ใช่ตัวต่อสามารถเข้าใจได้ว่าเป็นใบ
ในโครงสร้างที่เหมือนต้นไม้นี้ด้านบนคือ "เวที" สอดคล้องกับโปรแกรมเราสามารถเห็นวัตถุ stage เวทีเป็นคอนเทนเนอร์แสดงผลพื้นฐานที่สุดในสถาปัตยกรรมการแสดงผล egret แอปพลิเคชัน Egret แต่ละตัวมีวัตถุขั้นตอนเดียวเท่านั้น ขั้นตอนคือโหนดรูทของโครงสร้างต้นไม้แสดงผลนี้
บนเวทีเรายังมีภาชนะหลัก คอนเทนเนอร์นี้เป็นคอนเทนเนอร์ที่สร้างโดยคลาสเอกสาร แต่ละ egret จะมีคลาสเอกสารซึ่งจะต้องเป็นคอนเทนเนอร์วัตถุที่แสดง
ในฉากนี้เรามีพื้นหลังฉากและพื้นหลังประกอบด้วยภาพพื้นหลังและต้นไม้ใหญ่ องค์ประกอบอีกสององค์ประกอบประกอบด้วยตัวละครและทุ่งหญ้า
แสดงรายการ
ไดอะแกรมโครงสร้างวัตถุที่แสดงรูปต้นไม้ที่เราเห็นด้านบนเป็น "รายการแสดงผล" ของ Egret
มันสะดวกมากในการใช้รายการแสดงผลเพื่อจัดการคอนเทนเนอร์และวัตถุที่ไม่ใช่ตัวตน เมื่อวัตถุแสดงผลอยู่ในรายการแสดงผลเราสามารถเห็นวัตถุในหน้าจอ เมื่อเราลบวัตถุที่แสดงผลออกจากรายการแสดงผลวัตถุจะหายไปจากหน้าจอ
มีรายการแสดงผลที่เก็บรักษาไว้ภายใน egret นักพัฒนาไม่จำเป็นต้องใส่ใจเกี่ยวกับวิธีการทำงานของรายการ คุณจะต้องดำเนินการที่สอดคล้องกันในวัตถุที่แสดงผลของคุณ
แสดงประเภทวัตถุ
ในระหว่างกระบวนการออกแบบสถาปัตยกรรม Egret จะห่อหุ้มวัตถุทั้งหมดรอบ ๆ แนวคิดของการแสดงรายการอย่างเคร่งครัด ใน egret วัตถุที่แสดงทั้งหมดได้รับการสืบทอดจากคลาส DisplayObject คลาส DisplayObject คือ "Display Object" ที่เราอธิบายไว้ก่อนหน้านี้ ใน egret "คอนเทนเนอร์" ทั้งหมดได้รับการสืบทอดมาจาก DisplayObjectContainer
เพื่อจัดการรายการแสดงผลอย่างสม่ำเสมอวัตถุที่แสดงทั้งหมดจะรวมอยู่ในคลาส DisplayObject วัตถุที่แสดงทั้งหมดได้รับการสืบทอดจาก DisplayObject และ DisplayObject ได้รับการสืบทอดมาจาก EventDispatcher กล่าวคือวัตถุที่แสดงทั้งหมดสามารถส่งเหตุการณ์ได้
DisplayObjectContainer แสดงว่าคลาสพาเรนต์ของคอนเทนเนอร์วัตถุนั้นยังแสดงถึง DisplayObject
ในการดำเนินการจริงเราทำให้แนวคิดง่ายขึ้นอีกครั้งซึ่งสามารถสรุปได้เป็นสองกฎ:
คลาสที่สืบทอดโดยตรงจาก DisplayObject เป็นสิ่งที่ไม่ใช่ตัวต่อทั้งหมด คลาสที่สืบทอดมาจาก DisplayObjectContainer เป็นภาชนะทั้งหมด