เจออะไรแปลกใหม่อีกหละ เพราะว่าต้องดัดแปลง TabNavigator นิดหน่อยโดยการจับ Tab ย้ายมาอยู่ด้านล่างตอนแรกนึกว่าจะง่ายๆ แค่กำหนด property ไรนิดหน่อยก็น่าจะเสร็จ ที่ไหนได้ ต้องเขียนเพิ่มเอง -_-! แล้วก็พบปัญหาว่าไอ้ component อื่นๆ ที่อยู่ใน TabNavigator เนี๊ยะ มันกำหนดตำแหน่งด้วยตัวแปร border ที่ method layoutChrome
override protected function layoutChrome(unscaledWidth:Number,
unscaledHeight:Number):void
{
super.layoutChrome(unscaledWidth, unscaledHeight);
// Move our border so it leaves room for the tabs
if (border)
{
var borderOffset:Number = tabBarHeight;
border.setActualSize(unscaledWidth, unscaledHeight - borderOffset);
border.move(0, borderOffset);
}
}
ตัวแปร border มันดันเป็นตัวแปรพิเศษซ่อนอยู่ใน namespace mx_internal ลองดูไฟล์ต้นฉบับมันก็ใส่แค่
use namespace mx_internal
แต่พอเอามาใช้เองบ้างกลับได้ Error มาว่าไม่รู้จัก namespace นี้วิธีแก้คือต้อง import มันมาด้วย
import mx.core.mx_internal
use namespace mx_internal
เท่านี้ก็ใช้ border ได้แล้ว แต่ใน namespace นี้นอกจากตัวแปร border แล้วยังมีอย่างอื่นอีกเยอะแยะมากมาย ไว้สำหรับใช้ภายในคลาสต่างๆ ที่ Adobe ทำขึ้นอยากรู้รายละเอียดลองไปอ่านตาม link ที่อ้างอิงดูหรือไม่ก็ googling ด้วย keyword mx_internal ก็ได้แล้วจะพบเรื่องลึกลับมากมายที่ Adobe เก็บไว้
อ้างอิง: What is mx_internal?