ต่อ...
เรื่อง
Drag&Depth ตอนที่ 2 จากตัวอย่างอันที่แล้ว เรามีปัญหาตรงที่ว่า พอเอาเม้าส์หยิบแล้วลาก มันจะซ้อนกันมั่วไปหมด
ไม่มีการจัดลำดับชั้น และบางครั้งซ้อนกันแล้วปล่อยไม่หลุดก็มี
ที่ปล่อยเม้าส์แล้วไม่หลุดเพราะ พอเรากด
อันนึง แล้วลากไป
อีกอันนึงซึ่งอยู่
ชั้นหนือกว่า พอเราเอาเม้าส์ไปแตะหรือ rollOverมันก็เลยไป
จับเหตุการณ์อันนั้นๆแทน
ปล่อยให้ไอ้
อันแรกที่กดติดไว้นั้นค้างเติ่ง อารมณ์ค้างอย่างน่าสงสาร
ต้องกดย้ำให้เม้าส์กลับมาจับเหตุการณ์ของ
อันเดิม ถึงจะเสร็.. เอ้อ หลุดเหมือนเดิม
==========================================
ว่าด้วยเรื่อง
Depth ( มีสาระนิดหน่อย อ่านไว้ๆ เดานิดหน่อยตามความรู้ที่มี )
เมื่อเราสร้างอะไรก็แล้วแต่บน stage ระบบจะมีการจัดระดับความลึกของ Object ชิ้นนั้นๆ
ถ้าเดาไม่ผิด ชิ้นแรกที่สร้าง จะอยู่ลึกสุดใจ เป็นค่าเริ่มต้นที่
-16383 ก็คิดง่ายๆ ไอ้ชิ้นที่สร้างอันแรกอ่ะ อยู่ใต้ดินลึกลงไป 16383 ชั้น
อันที่สอง (สร้างอะไรก็แล้วแต่) อยู่สูงขึ้นมาหนึ่งชั้น คือ อยู่ใต้ดินลึกลงไป 16382 ชั้น
เพื่อไม่ให้มันทับกันเองหากอยู่เลเยอร์เดียวกันน่ะ และอีกหลายๆเหตุผล
ตามนั้น เอาง่ายๆ อธิบายแค่นี้พอนะครับ (มากกว่านี้ หรือเพิ่มเติม เชิญได้เลยครับ ยินดีๆ)
=========================================
กรณีงานที่แล้วของผม อันที่มีปัญหาน่ะ สรุปง่ายๆคือ
ปัญหาแค่ลำดับชั้นอย่างเดียว เพราะเราต้องการจะ "หยิบอันไหน อันนั้นอยู่บน"
อันที่แล้วเราสร้าง ก้อนสี่เหลี่ยมมา แล้วทำเป็น MC 5 ชิ้น
ลำดับชั้นก็เลยต่างกัน 5 ขั้น (โดยประมาณ...เดา)
//ตรงนี้ไม่แน่นอนนะ เกิดเราสร้างอะไรๆไปก่อนหน้านี้ แล้วลบออก มันก็จะรันไปเรื่อยๆ
=================================================
ทีนี้เราอยากจะทำให้มันอยู่"บน"ล่ะ
สคริปง่ายๆที่สั่งงานเกี่ยวกับลำดับชั้นคือ
???.swapDepths(ค่าที่ต้องการ) // ??? ในวงเล็บแรกคือ MC หรือ ปุ่ม หรือ TextField ใดๆที่ต้องการสั่งงาน
//ค่าที่ต้องการ คือ ลำดับชั้นที่ต้องการ และสามารถใช้วิธีเปรียบกับลำดับชั้นตัวอื่นได้ด้วย แต่เราจะไม่พูดถึงครับ(เพราะ...ตูไม่เคยใช้น่ะ)
ตัวอย่างง่ายๆ
mc.swapDepths(20); // คือ สั่งให้ mc ไปอยู่ชั้นที่ 20 เลย
ง่ายเนอะ
=======================================================
สคริปที่แล้ว เราได้ออกมาว่า
on(press){ //เมื่อเอาเม้าส์มากดปุ่มนี้
startDrag(this); //ให้้เกาะติดเม้าส > this คือตัวเอง - แปลได้ว่า "ให้ตัวเองเกาะติดเม้าส์"
}
on(release){ //เมื่อปล่อยปุ่ม
stopDrag(); //"ให้ตัวเองเลิกเกาะติด"
}
นี่คือสคริปที่ใส่ใน mc ทั้งห้าตัวนั่นนะ
ทีนั้เราต้องการบังคับให้ มัน "หยิบปั๊ป อยู่บน"
นึกสคริปเป็นภาษาไทยได้ว่า "กดปั๊ป สั่งให้ mc ตัวที่กด ไปอยู่ชั้นสูงกว่า mc อื่นๆ"
ตอนนี้เราจำไม่ได้หรอกว่าอันไหนสร้างก่อนหลัง อันไหนอยู่ลำดับที่เท่าไร
เราจะเพิ่มสคริปแบบไหนดีครับ?
ขอวิธีคิดครับ เอาสคริปแนวคิดแบบภาษาไทยนะครับ เดี๋ยวมาเฉลยยย