Archive | ภาษา RSS feed for this section

Flex Event Propagation

ปล่อยเรื่องนี้ค้างคาใจมานานเหลือเกิน เพราะไม่ได้ใช้ Event ครบทุก Phase อย่างจริงจัง วันนี้ต้องทำให้ Checkbox List ทำงานเร็วขึ้นแต่ไม่อยากแก้ List ของ Adobe ตรงๆ หรือทำไรเพิ่มเติมก็ต้องเล่นกับ Event แทนนี่แหละ อ่านคร่าวๆ ขั้นตอนการส่งต่อ Event ของ Flex มีแค่สามขั้นคือ Capturing Phase, Targeting Phase, Bubbling Phase ลองดูภาพด้านล่างเผื่อเข้าใจง่ายขึ้น ภาพด้านบนแสดงการซ้อนกันของ Component ต่างๆ ที่สร้างขึ้น มี Application เป็น Component ที่อยู่นอกสุด ตามด้วย HBox และ Button ถ้าเขียนเป็น mxml ก็จะได้อย่างด้านล่าง เมื่อมีคนกดปุ่มสิ่งที่เกิดขึ้นคือ component ที่อยู่นอกสุดซึ่งก็คือ Application จะดักจับ event ได้ก่อน จากนั้นจะส่งต่อไปที่ Box [...]

Read full story Comments { 1 }

Functional Programming Camp

วันเสาร์เพื่อนเลื่อนนัด เลยตัดสินใจไป Functional Programming Camp แทน(จริงๆ มีสอบอังกฤษ แต่โดดไป ^^!) ไปถึงประมาณสิบโมง หลงทาง(ในหมู่บ้าน) อีกครึ่งชั่วโมง กว่าจะไปถึงจริงๆ ก็ประมาณสิบโมงครึ่งนั่งเล่น นั่งคุย แล้วเริ่มกันจริงๆ ก็สิบเอ็ดโมงกว่า แต่จากนั้น เนื้อหาที่ตามมาเรียกว่าหนักหัวมาก กว่าจะย่อยได้หมดเรียกว่าเมาสัญลักษณ์ไปเลย เริ่มจาก Functional Programming คืออะไร คำตอบจากพี่ @pphetra บอกว่ามันคือรูปแบบในการเขียนโปรแกรม โดยรูปแบบที่ว่ามีลักษณะคือ Immutable ข้อมูลต่างๆ เมื่อประกาศมาแล้วจะไม่มีการเปลี่ยนแปลง หรือเทียบเท่ากับ function ที่ไม่รับตัวแปรอะไรเลยแล้วให้ผลลัพธ์กลับมา เช่น var a = 5 ก็จะเหมือนกับประกาศว่า function a() = 5 Recursion การทำซ้ำต่างๆ ในรูปแบบการเขียนโปรแกรมอื่น จะใช้รูปแบบการวนซ้ำเช่น for, while แต่เนื่องจาก ตัวแปรไม่สามารถเปลี่ยนแปลงได้ การวนซ้ำแบบนั้นจึงทำไม่ได้ การทำซ้ำต่างๆ ใน functional [...]

Read full story Comments { 2 }

Array หรือ Collection

ไม่รู้มีใครเคยคิดหรือป่าว แต่คำถามนี้เหมือนมันอยู่ในหัวตั้งแต่เริ่มทำงานเลยหละ (หรืออาจจะตั้งแต่รู้จัก Collection API ของจาวาเลยมั้ง) หลายคนอาจจะใช้ Collection แทน Array ไปเลยเพราะมันสะดวกดี สามารถเพิ่มลดได้ง่าย (โดยบางครั้งอาจจะไม่รู้ว่า Collection แต่ละแบบมีลักษณะอย่างไร แต่นั่นไว้เป็นอีกหัวข้อนึงละกัน) และก็สามารถใช้แทน Array ได้แทบทั้งหมด หลายคนอาจจะสงสัยว่า อ้าวแล้วอย่างนี้จะกลับไปใช้ Array ทำไม จริงๆ Array มันก็มีคุณสมบัติของมันที่ทำให้ชอบหลายๆ อย่างนะ เช่น ประกาศได้ง่าย สามารถกำหนดค่าเริ่มต้นให้มันได้ โดยไม่ต้องคอยไล่เพิ่มทีละตัว และก็มีขอบเขตที่แน่นอน ไม่สามารถเพิ่มได้! และข้อดีอย่างสุดท้ายนี่แหละ ที่เวลาเขียนโปรแกรมแล้วเอามาตัดสินว่าเมื่อไหร่จะใช้ Array หรือ Collection เวลาเลือกก็ดูจากเมธอดที่เขียนว่าจำเป็นต้องคืนค่าให้เปลี่ยนแปลงชุดข้อมูลนั้นได้หรือป่าว ถ้าคืนค่าไปแล้ว ข้อมูลจะถูกเอาไปเพิ่มหรือลดอีกภายหลังก็จะให้กลับไปเป็น Collection แต่ถ้าไม่ต้องก็ออกไปเป็น Array ซะ เหมือนกันตอนเอาเข้า ถ้าเมธอดนั้น มีไว้เพื่อเพิ่มหรือลดข้อมูล ก็รับมาเป็น Collection ซะ แต่ถ้าไม่จำเป็นก็ขอมาเป็น Array ดีกว่า แต่วิธีตัดสินนี้ไม่สามารถเอาไปใช้กับภาษาอย่าง [...]

Read full story Comments { 0 }

Adobe Flex หรือ JS+HTML

เพื่อนเคยถามว่าจะใช้ Adobe Flex ดีหรือเปล่ามันยากง่ายอย่างไร ก็ตอบแบบคร่าวๆไป ตอนนั้นไม่เคยรวบรวมความคิดแล้วสรุปอย่างจริงจังว่ามันควรใช้หรือไม่ แต่เมื่อปลายเดือนที่แล้ว(หรือกลางๆ เดือนหว่า) ได้คุยกับพี่ที่ทำงาน แล้วมันก็เหมือนรวบยอดขึ้นมาว่า Adobe Flex มันดียังไง แล้วมันไม่ดียังไง มันควรใช้เมื่อไหร่ Adobe Flex จริงๆ มันก็ง่ายสำหรับคนที่เคยเขียน Java หรือ C# นะ เพราะลักษณะภาษามันแทบไม่ได้มีอะไรแตกต่าง เพราะงั้น สำหรับโปรแกรมเมอร์ที่นั่งพิมพ์ดีด อย่างเดียวแล้ว ถือว่ามันง่ายกว่า Javascript พอสมควรเลยหละ แต่ว่า สิ่งหนึ่งที่น่าปวดหัวที่สุดคือ มันไม่ได้สวยจนเอาไปใช้งานได้ตั้งแต่เริ่มต้น และการปรับเปลี่ยนหน้าตามันไม่ได้ง่ายเหมือน HTML หลายคนอาจจะบอกว่า Adobe Flex ก็มีภาษา MXML ที่มีหน้าตาคล้าย HTML แถมใช้ CSS ได้เกือบจะเหมือนกันอีก ซึ่งก็จริง หลายๆ อย่างนั้นเหมือน HTML มากแต่มันต้อง compile ก่อนถึงจะเห็นผล ซึ่งนั่นไม่เหมาะกับบริษัทที่มีแต่โปรแกรมเมอร์มาก มันเป็นอะไรที่เหมาะกับบริษัทที่มีคนออกแบบหน้าตาด้วยโปรแกรมของ Adobe [...]

Read full story Comments { 1 }

FlexUnit

เขียน Flex มาก็สองปีน่าจะเอามาใช้แต่แรก แต่สุดท้ายกว่าจะได้ลองและเอามาใช้จริงๆ ก็อาทิตย์ที่แล้ว T_T ไม่เป็นไรยังไงก็ยังได้ใช้ แต่ก่อนที่จะเอามาใช้ได้ ก็ต้องแบ่งโปรแกรมที่เขียนก่อนเลยเป็นส่วนๆ แล้วค่อยๆ เลือกว่าจะเขียน UnitTest ครอบส่วนไหนบ้าง อาทิตย์ที่แล้วก็เลือกได้ Component นึงเรียกว่าเป็น Component หลักเลยก็ว่าได้ คิดว่าคงได้ชำแหละเป็นส่วนๆ ก็อาทิตย์นี้ หลังจากที่ให้มันใหญ่โตมานาน ตอนแรกสุดตั้งใจว่า ให้มันสร้างรายงานออกมาเป็น HTML ให้แต่ยังทำไม่สำเร็จ สุดท้ายเลยเอาแค่ให้มีหน้าสำหรับทำงานให้ดูแล้วแสดงว่าตัวไหนผ่าน ไม่ผ่าน สำหรับ FlexUnit ที่ใช้เป็นรุ่นที่ยังไม่ออก (มันเคยออกไปยังหว่า -*- ) ดาวโหลดได้ที่ Adobe Labs มาดูโครงสร้างที่ใช้ก่อน เนื่องจากใช้ร่วมกับโปรเจคที่ทำปัจจุบัน เลยมีแฟ้ม src หรือส่วนต่างๆ อยู่แล้ว เพียงแต่ต้องการเขียนส่วนทดสอบเพิ่ม เลยสร้างแค่แฟ้ม test ขึ้นมา ตามด้านล่าง Project -src -test –Runner.mxml –Runner.as (ถ้าใครชอบเขียน script รวมอยู่ใน [...]

Read full story Comments { 0 }