ผมใช้ MovieClip ครับ
ไม่รู้เป็นวิธีที่มาตรฐานรึเปล่า
ประมาณว่ากำหนดฟังก์ชั่น reType อยู่อีกเฟรม
var reoperator:MovieClip = _root.createEmptyMovieClip("reoperator", 0);
reoperator.onEnterFrame = function() {
ex.text = thai;
var txt = inputz.text;
var fxtxt = reType(txt);
dynamicz.text = fxtxt;
}
โดย inputz เป็น Instant Name ของ Input TextField
ในทำนองเดียวกันกับ dynamicz
ส่วนถามว่าพิมพ์ไปแล้วแก้สระลอยได้เลยนั้น ทำได้ครับ
แต่ต้องเขียนสคริปต์เพิ่มเข้าไป
ถ้าสมมุติเอามาเป็น String เน้นๆ จะพบว่าถึงแม้จะสั่งให้เปลี่ยนให้เป็น -ี หลบหางที่ resultString แล้ว แต่ออริจินัลยังเป็น -ี ธรรมดาอยู่ ดังนั้นตัวสคริปต์จึงพิจารณาว่าต้องอยู่หลัง ป ปลามาสองตัว และอยู่หลัง -ี มาตัวนึง
ยกตัวอย่างเช่น ออริจินัลเลย เป็น ป + -ี (ธรรมดา) + -่ (ธรรมดา)
เมื่อพิจารณาถึงตัว -ี (ธรรมดา) จากออริจินัล พบว่าก่อนหน้านี้มี ป อยู่
ดังนั้นจึงสั่งให้เพิ่ม -ี (หลบหาง) เข้าไปแทน
ต่อมาเมื่อพิจารณาถึงตัว -่ (ธรรมดา)
จากออริจินัล ตัวก่อนหน้าสองตัวเป็น ป ปลาจริง
ตัวก่อนหน้าเป็น -ี (ธรรมดา) เพราะเทียบจากออริจินัล
จึงสั่งให้เพิ่ม -่ (หลบหางขึ้นบน) เข้าไปแทน
แต่เมื่อเราใช้คำสั่งกับ String ที่ป้อนเข้ามาสดๆ
เมื่อเราพิมพ์ไปได้ครึ่งทาง คือ ป + -ี (ธรรมดา)
สระอีก็จะเปลี่ยนไปเป็น -ี (หลบหาง) แล้ว
จากนั้นจึงมาเริ่มพิจารณาใหม่กับ String ที่ปรับให้ -ี หลบหาง
เมื่อพิมพ์ -่ ไม้เอกจึงไม่ได้อยู่หลัง -ี (ธรรมดา) อีกต่อไป
จึงไม่สามารถแก้ปัญหาได้สมบูรณ์หากใช้กับ Input TextField ผ่านทาง MovieClip
(หรือแก้สมบูรณ์หากเขียนสคริปต์เพิ่มเข้าไปอีก)
หรือ -- มีวิธีอื่นมั้ยครับป๋าทั้งสอง