หน้า: [1]
 
ผู้เขียน หัวข้อ: เรื่องการโชว์ Font ใน Combobox  (อ่าน 5987 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
 ลันล้า ช่วงนี้เงียบเหงาจังนะคะ
ความเดิมจากตอนที่แล้ว

ที่ต้องการทำตอนนี้  ทำได้แล้วค่ะ  คือข้างล่างนี่
<a href="http://img2.f0nt.com/flash/a091bf2645c497432f7bbc5609919636.swf" target="_blank">http://img2.f0nt.com/flash/a091bf2645c497432f7bbc5609919636.swf</a>
คือจากเดิมที่ดึงฟ้อนจากเครื่องเรา  ให้เป็นดึงจากไลบารี่แทนน่ะค่ะ
โค้ด:
import mx.controls.ComboBox;
var myCombo_cb:ComboBox;

function init ()
{
myCombo_cb.rowCount = 3;
var myDP:Array = new Array();
myCombo_cb.dataProvider = myDP;

var myFontLabel = ["Times", "Tahoma", "Arial", "Curlz MT", "Edwardian Script ITC"];
var listContent = ["myFont1", "myFont2", "myFont3", "myFont4", "myFont5"];


for (var i = 0;i <= 4;i++)
{
myDP.addItem(myFontLabel[i], listContent[i], listContent[i]);
}

myCombo_cb.addEventListener ("change", function ()
{
myCombo_cb.textField.setStyle ("fontFamily", myCombo_cb.value);
var myTxtFormat:TextFormat = new TextFormat();
myTxtFormat.font = String(myCombo_cb.value);
txt.setTextFormat(myTxtFormat);

});

myCombo_cb.addEventListener ("load", setCBListFonts);
myCombo_cb.addEventListener ("scroll", setCBListFonts);
}
function setCBListFonts ()
{
for (var i in myCombo_cb.dropdown.listContent)
{
var _tf:TextFormat = myCombo_cb.dropdown.listContent[i].cell.getTextFormat ();
_tf.font = myCombo_cb.dropdown.listContent[i].cell.text;
myCombo_cb.dropdown.listContent[i].cell.setTextFormat (_tf);
}
}
init();

**ความปวดหัวครั้งใหม่ (ตอนต่อมา)
 :02:ถ้าต้องการให้ Combobox โชว์   Font  เหมือนรูปข้างล่าง  โดยเมื่อเอาเม้าไปชี้ที่  Font ตัวใดตัวหนึ่ง
ก็จะมีกล่องข้อความแสดงรูปแบบของฟ้อนตัวนั้น  (Font ดึงมาจากไลบารี่) น่ะค่ะ

หรือตามลิงค์ข้างล่างนี้อ่ะค่ะ
http://www.printenator.com/index.php?page=shop.product_details&flypage=flypage-ask.tpl&product_id=30&category_id=13&option=com_virtuemart&Itemid=66

 ต้องทำแบบไหน  หรือเขียนสคริปยังจึงจะได้แบบนี้คะ
บันทึกการเข้า
 ฮือๆ~ ช่วงนี้เงียบเหงามาก  ผู้คนหายหมดเลย
ตอนนี้ได้แบบนี้แล้วค่ะ  ลันล้า
<a href="http://img2.f0nt.com/flash/cc8b80763dec06a92aecb8db32db232d.swf" target="_blank">http://img2.f0nt.com/flash/cc8b80763dec06a92aecb8db32db232d.swf</a>
บันทึกการเข้า
โอ้ว ยิ่งใหญ่มาก (แจ๋ว แจ๋ว)

เคยเห็นที่เขาดึงฟอนต์มาจากในเครื่องมาแสดงในลิสต์เลยนะครับ
แต่ไม่รู้จริงๆ ว่าทำได้ยังไง แต่เท่าที่เห็นของ sarina นี่ก็ยิ่งใหญ่มากๆ แล้ว เจ๋ง
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ยินดีด้วยครับ

ว่าแต่การเปลี่ยนรูปแบบ font มันก็เหมือนกันไม่ใช่เหรอครับ
(หมายถึงที่แสดงในตัวที่เราเลื่อนๆได้ กับตัวอย่างเมื่อเอาเมาท์ไปวางข้างบนน่ะครับ)

ส่วน [object object] นี่พิมพ์เองหรือเปล่าครับ หรือต้องการเอาค่าของ font มาแสดงครับ
ถ้าเอาค่า font มาแสดง น่าจะเป็นปัญหาของการอ้าง property ผิดตัวครับ ยังไงก็ลองแก้ดูละกันน่อ
หรือถ้าผมมั่วไป ก็ขออภัยมา ณ ที่นี้ด้วยครับ

แต่การเปลี่ยน font มันน่าจะเหมือนกันจริงๆนะ
ยังไงก็ลองตรวจสอบ path หรือตัวแปร ดูละกันครับ ว่าอ้างอิงถูกตัว ถูกค่าหรือเปล่า

** ที่ไม่ได้เข้ามาตอบ เพราะงานเยอะจริงๆน่อ ปั่นไม่ค่อยทันเท่าไร
เดือนหน้าก็จะลาออกแล้วต้องรีบเคลียงานในบริษัทสักหน่อย
แต่ใน thaiflashdev ก็ยังมีคนตอบมาอยู่บ้างนิครับ ยังไงก็พยายามต่อไปน่อ
บันทึกการเข้า

ก่อสร้างกับทำลาย เหมือนที่ลงมือ ต่างที่การกระทำ
ขอบคุณมากค่ะ แต่มันมีปัญหาอยู่ที่บรรทัดที่ 124 นะค่ะ
โค้ด:
for (var i = 0;i <= 8;i++)  
{
   [color=red] myDP.addItem(myFontLabel[i], listContent[i], listContent[i]);[/color]
}
ตรง myDP.addItem น่ะค่ะ  ถ้าเป็นอย่างนี้มันจะโชว์รูปแบบฟ้อนและไม่ขึ้น [object object](แต่พอคลิ๊กเปลี่ยนฟ้อนมันเลี่ยนไม่ได้ค่ะ)
และถ้าเปลี่ยนเป็น myCombo_cb.addItem ฟ้อนมันจะเปลี่ยนได้ค่ะ  แต่รูปแบบฟ้อนมันจะไม่ขึ้น
 และจะแสดง [object object] ดังที่ได้อัพเอาไว้

ช่วยหน่อยนะค่ะ
« แก้ไขครั้งสุดท้าย: 23 ก.ค. 2008, 17:26 น. โดย sarina » บันทึกการเข้า
ตัวไหนคือ myCombo_cb ตัวไหนคือ myDp ครับ ?
ทำไมถึงมี 2 ตัว ??

ลองแก้ที่ event rollover หรืออะไรสักอย่าง ของเวลาเอาเมาท์ไปวางเหนือตัวเลือกนั้นดูละกันครับ

ผมไม่ได้ดูโค้ดนะครับ เดาล้วนๆ น้องดำ
บันทึกการเข้า

ก่อสร้างกับทำลาย เหมือนที่ลงมือ ต่างที่การกระทำ
var myDP = new Array();
myCombo_cb.dataProvider = myDP;

ที่จิงถ้าจะเปลี่ยนฟ้อนเฉยๆใช้  myCombo_cb คือชื่อ instance ของ List
แต่เมื่อยากให้โชว์ฟ้อนเมื่อโอเวอร์  มันต้องใช้ dataProvider เหมือรกับที่ดึงฟ้อนจากเครื่องมาโชว์
เช่น myCB.dataProvider = TextField.getFontList ();  ประมาณนี้อ่ะค่ะ+เดาเอาเองนิดหน่อยถึงมาก ฮี่ๆ

แล้วก็ตามที่บอกอ่ะค่ะในบรรทัดที่ 124 ในไฟล์
แต่ไม่รู้มันต้องเพิ่มตรงไหนอีกอ่ะค่ะ.. ฮือๆ~
บันทึกการเข้า
ขอบคุณมากค่ะ แต่มันมีปัญหาอยู่ที่บรรทัดที่ 124 นะค่ะ
โค้ด:
for (var i = 0;i <= 8;i++)  
{
   myDP.addItem(myFontLabel[i], listContent[i], listContent[i]);
}
ตรง myDP.addItem น่ะค่ะ  ถ้าเป็นอย่างนี้มันจะโชว์รูปแบบฟ้อนและไม่ขึ้น [object object](แต่พอคลิ๊กเปลี่ยนฟ้อนมันเลี่ยนไม่ได้ค่ะ)
และถ้าเปลี่ยนเป็น myCombo_cb.addItem ฟ้อนมันจะเปลี่ยนได้ค่ะ  แต่รูปแบบฟ้อนมันจะไม่ขึ้น
 และจะแสดง [object object] ดังที่ได้อัพเอาไว้

ช่วยหน่อยนะค่ะ
บันทึกการเข้า
 ฮือๆ~
บันทึกการเข้า
หน้า: [1]
 
 
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!