วิธีทำให้ TextField ใน Flash สามารถแก้ไขข้อมูลโดย Flex ได้ (พร้อมทิป) by

31
Oct
0

โดยปกติแล้วถ้าเราสร้างปุ่มขึ้นมาใน Flash แล้วต้องการให้มันมีตัวหนังสือ (label) เราก็จะสร้าง text field ไว้ในปุ่มนั้นๆเลย ทีนี้ปัญหามันอยู่ที่ว่า ถ้าเรา import ไปใช้กับ Flex แล้วเราจะไม่สามารถอ้างอิงถึง property ที่เป็น Text Field นี้ที่อยู่ใน button ได้ เช่น

text_button.txtOnButton.text = “change”; แบบนี้จะทำให้เกิด Error ได้ จึงมีวิธีมานำเสนอครับ

การสร้างปุ่มที่ใส่ text field ไว้ด้านในแบบทั่วไป ซึ่ง refer ถึง text field ไม่ได้

การสร้างปุ่มที่ใส่ Text Field ไว้ด้านในแบบทั่วไป ซึ่ง refer ถึง Text Field ไม่ได้

เนื่องจากปุ่มเป็น Button จึงเข้าถึงส่วนต่างๆข้างในด้วยโค้ดไม่ได้

เนื่องจากปุ่มเป็น Button จึงเข้าถึงส่วนต่างๆข้างในด้วยโค้ดไม่ได้

เมื่อรันใช้ได้ปกติ

เมื่อรันใช้ได้ปกติ

วิธีแก้ขั้นแรกให้เรา Cut ตัว Text Field ที่อยู่ในปุ่มออกมาก่อนแล้ว New Symbol (Ctrl + F8) แล้วให้เลือกเป็น Movie Clip (ไม่ใช่ Button) จากนั้นก็นำ Text Field ก่อนหน้ามาวาง เท่านี้เราก็สามารถเข้าถึงตัว Text Field จากสคริปได้แล้วล่ะครับ เช่น mcButton.txtOnButton.text = “change”;

ให้เรา cut text field ออกไปก่อน

ให้เรา cut Text Field ออกไปก่อน

นำปุ่มเปล่ามาใส่ใน Symbol พร้อมกับ text field ก่อนหน้ามาใส่

นำปุ่มเปล่ามาใส่ใน Movie clip พร้อมกับ Text Field ก่อนหน้ามาใส่

แต่! มันจะมีปัญหาคือตัว Text Field จะบังตัวปุ่มทำให้เวลาชี้ในระยะกล่อง Text Field มันจะถือว่าไม่ได้ Hover ปุ่มอยู่เลย วิธีแก้ก็คือเขียนสคริปตั้ง Property mouseEnabled ให้เป็น  false สำหรับ Text Field ครับ เท่านี้ก็ใช้งานได้ปกติแล้วล่ะครับ

เวลาชี้แถวตัว text ปุ่มจะไม่ขยายและ cursor ไม่เปลี่ยนเป็นรูปมือ

เวลาชี้แถวตัว text ปุ่มจะไม่ขยายและ cursor ไม่เปลี่ยนเป็นรูปมือ

ใส่ ActionScript ตั้งค่า Property ของ text field เรา mouseEnabled = false;

ใส่ ActionScript ตั้งค่า Property ของ Text Field เรา mouseEnabled = false;

เมื่อรันใช้ได้ปกติ

กลับไปเป็นรูปมือดังเคย

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post