งานอย่างนึงที่ต้องทำผ่านมาคือเรียกโปรแกรมที่เขียนด้วย Adobe AIR จากเว็บ แต่เรียกอย่างเดียวมันธรรมดาไป ต้องมีการรับค่าจากฟอร์มในเว็บด้วย! ตอนแรกก็คิดว่าไม่ยาก ที่ไหนได้เจออิทธิฤทธ์ของ IE6 เข้าไปถึงกับงงเลยทีเดียว แต่จะเขียนแล้วก็เขียนถึงวิธีเรียกทั้งหมดเลยละกัน ใน Flex framework มีคลาสสำหรับติดต่อกับ Javascript จะใช้เรียกฟังก์ชั่น หรือจะให้ฟังก์ชั่น Javascript มาเรียกใน Flash คือ flash.external.ExternalInterface เวลาเรียกฟังก์ชั่น Javascript จาก Flash ก็ง่ายๆ ด้วยคำสั่ง ExternalInterface.call(“javascriptFunctionName”, “argument1″, “argument2″, … , “argumentN”) แต่ความยากไม่ได้อยู่ที่ตรงนี้ สิ่งที่ทำพลาดจนทำให้ต้องจดคือสิ่งที่อยู่ใน HTML เพราะบราวเซอร์แต่ละตัวเห็น tag object embed ต่างกัน สุดท้ายแล้วทางที่ดีคือคัดลอกเอาจากใน Flex API Document มานั่นแหละ ปลอดภัยที่สุด ลองมาดูของจริงเลยละกัน Javascript ในหน้านี้หน้าตาเป็นอย่างด้านล่าง เมื่อกดปุ่มด้านล่าง จะเรียก function [...]
Adobe Flex หรือ JS+HTML
เพื่อนเคยถามว่าจะใช้ Adobe Flex ดีหรือเปล่ามันยากง่ายอย่างไร ก็ตอบแบบคร่าวๆไป ตอนนั้นไม่เคยรวบรวมความคิดแล้วสรุปอย่างจริงจังว่ามันควรใช้หรือไม่ แต่เมื่อปลายเดือนที่แล้ว(หรือกลางๆ เดือนหว่า) ได้คุยกับพี่ที่ทำงาน แล้วมันก็เหมือนรวบยอดขึ้นมาว่า Adobe Flex มันดียังไง แล้วมันไม่ดียังไง มันควรใช้เมื่อไหร่ Adobe Flex จริงๆ มันก็ง่ายสำหรับคนที่เคยเขียน Java หรือ C# นะ เพราะลักษณะภาษามันแทบไม่ได้มีอะไรแตกต่าง เพราะงั้น สำหรับโปรแกรมเมอร์ที่นั่งพิมพ์ดีด อย่างเดียวแล้ว ถือว่ามันง่ายกว่า Javascript พอสมควรเลยหละ แต่ว่า สิ่งหนึ่งที่น่าปวดหัวที่สุดคือ มันไม่ได้สวยจนเอาไปใช้งานได้ตั้งแต่เริ่มต้น และการปรับเปลี่ยนหน้าตามันไม่ได้ง่ายเหมือน HTML หลายคนอาจจะบอกว่า Adobe Flex ก็มีภาษา MXML ที่มีหน้าตาคล้าย HTML แถมใช้ CSS ได้เกือบจะเหมือนกันอีก ซึ่งก็จริง หลายๆ อย่างนั้นเหมือน HTML มากแต่มันต้อง compile ก่อนถึงจะเห็นผล ซึ่งนั่นไม่เหมาะกับบริษัทที่มีแต่โปรแกรมเมอร์มาก มันเป็นอะไรที่เหมาะกับบริษัทที่มีคนออกแบบหน้าตาด้วยโปรแกรมของ Adobe [...]
ECMAScript3 ตอนที่ 3
ไม่ได้เขียนนานเนื่องจากความขี้เกียจ – -” เลยทิ้งมันไว้ซะนานขนาดนี้ วันนี้ก็เป็นโอกาสดีที่ว่าง ก็เลยทำต่อซะหน่อยก่อนจะขี้เกียจอีก ฮะๆๆ (วันนี้อาจเขียนอะไรเมินๆ แต่ถ้ามีเวลามากกว่านี้จะมานั่งเกลาภาษาอีกที >< “) Primitive และ Reference Values ใน ECMAScript ตัวแปรสามารถเก็บข้อมูลได้สองแบบคือแบบ Primitive กับ Reverence Primitive คือ ข้อมูลพื้นฐานต่างๆ ได้แก่ Undefined, Null, Boolean, String และ Numberโดยจะเก็บอยู่ใน Stack และสามารถเข้าถึงผ่านชื่อตัวแปรได้โดยตรง Reference คือ ข้อมูลที่ถูกเก็บไว้ใน Heap โดยตัวแปรจะเก็บเพียงแค่ตำแหน่งของวัตถุก้อนนั้นเท่านั้น เมื่อมีการกำหนดค่าให้กับตัวแปร ตัวแปลง ECMAScript ก็จะเอาค่ามาดูว่าเป็นประเภทใดระหว่าง Primitive หรือ Reference ถ้าเป็น Primitive ก็จะเอาไปเก็บไว้ใน Stack ที่ทำอย่างนี้เพราะว่าตัวแปรแบบ Primitive จะมีขนาดที่คงที่ ทำให้รู้ได้ว่าจะใช้พื้นที่เท่าไหร่ใน Stack เมื่อคำนวนแล้วนำไปเก็บใน [...]
ECMAScript3 ตอนที่ 2
ทิ้งไปนาน เขียนต่อซะหน่อยเดี๊ยวลืม สำหรับตอนนี้ก็บอกกันตรงๆ เลยละกันว่าแปลมาจากหนังสือเล่มเดิมที่เคยบอกไปเมื่อตอนที่แล้ว สามบท เริ่มเลยละกัน Syntax พื้นฐานของ ECMAScript มีด้วยกันไม่กี่อย่างตามด้านล่างนี้คือ ทุกอย่าง case-sensitive เหมือนกับภาษา Java, C จริงๆ ข้อนี้ก็เหมือนกันเกือบทุกภาษาหละนะ ยกเว้น VB6 ไว้ภาษาที่ตรงข้าม(อาจมีภาษาอื่นอีกแต่ที่ผมเคยเจอมีอยู่ภาษาเดียว) ประเภทตัวแปรเปลี่ยนประเภทไปตามค่าที่ใส่เข้ามา (loosely type) โดยดูได้จากวิธีประกาศตัวแปรใน javascript ที่ไม่ต้องมีการบอกประเภทว่า ตัวแปรนี้เป็นชนิดไหน แต่ดูจากค่าที่ใส่เข้ามาได้เลย ถ้าค่าที่ใส่เป็นตัวเลข ตัวแปรนั้นก็จะเป็นประเภทตัวเลข สำหรับ Actionscript3 จะต่างจาก ECMAScript3 หน่อยคือ ตัวแปรสามารถกำหนดประเภทได้ โดยเมื่อประกาศประเภทไปแล้วก็จะไม่สามารถเปลี่ยนได้อีก แต่จะไม่ประกาศก็ได้ ดังนั้น Actionscript3 จึงมีทั้งสองแบบ โดยตัวอย่างวิธีประกาศตัวแปรใน ECMAScript3 คือ var color = “red”; var num = 25; var visible = [...]