การ Embedding assets (Images, SWF, MP3, Font) ใน Flex Application

การ Embed Asset ต่างๆเข้าไปใน Flex Application โดยรูปแบบที่ Flex support ก็จะมี

Images (multiple instances)
Image (single instance)
Images that stretch with scale-9
Images for use with CSS and skinning
SWF files
SWF Library Assets
Sound files
SVG files
Fonts

ตามไปอ่านกันได้ที่ Adobe – Flex Quick Start Basics: Embedding Assets

Flex 2 Documents

สำหรับ Flex Developer ที่เบื่อกับการเปิด Flex Docs ผ่าน Eclipse เนื่องด้วยมันจะไปแชร์ Memory จาก Eclipse ทำให้ build โปรเจคได้ช้าลงนั่นเอง
ทาง Adobe ได้เตรียม Documents ที่เหมือนกับใน Eclipse ทุกประการให้ทั้งแบบ Online หรือจะ Download ไปดูแบบ Offline นอก Eclipse ก็ได้ครับ

Flex 2 Documentation (2.0.1 update)

Adobe Flash samples

หลายตัวอย่างใน Flex Help จะอ้างอิงไปยัง Flash samples ครับ เช่น FileIO ที่เกี่ยวกับการ upload/download ด้วย Flex/Flash

Adobe Flash samples

Example: Uploading and downloading files with Flex2

ตัวอย่างการ Uplaod และ Download Files จากเว็บของ Adobe ครับ

Example: Uploading and downloading files — Flex 2

ไฟล์ FileIO ในตัวอย่างนั้น download ได้ที่ Flex 2 ActionScript Example

Passing request data to Flex applications (Part 2)

หลังจากภาคแรกของ Passing request data to Flex applications ที่ใช้ flashVars เป็นตัวกลางในการส่ง Param จากภายนอกเข้าไปใน Flex
แต่นั่นยังไม่ใช่วิธีที่ฉลาดพอ ผมจึงทำการแก้ Template ของ Flex Wrapper เล็กน้อยเพื่อให้ง่ายขึ้น
โดยตั้งใจว่า Wrapper จะส่งต่อ Parameter จาก Web Browser ไปยัง Flex ทั้งหมดโดยไม่ต้องแก้ Code เมื่อมีการเปลี่ยนแปลงแก้ไขจำนวนหรือชื่อ Parameter
ยกตัวอย่าง ถ้า เปิด Web Browser ไปยัง http://127.0.0.1:8080/flex/FlexApp.html?param1=value1&param2=value2
ค่า param1=value1&param2=value2 จะถูกส่งต่อไปยัง Flex Application โดยอัตโนมัติ

วิธีการก็ไม่ยากอะไรครับ ให้แก้ไขไฟล์ index.template.html ที่อยู่ในโฟล์เดอร์ html-template ของ Flex Application
โดยแก้ไขค่า flashvars ที่จะส่งให้กับ AC_FL_RunContent จากเดิมที่เป็น

“flashvars”,’historyUrl=history.htm%3F&lconid=’ + lc_id + ”,

ให้แก้ใหม่เป็น

“flashvars”,’historyUrl=history.htm%3F&lconid=’ + lc_id +’&’+ window.location.search.substring(1),

เท่านี้ Parameter ทุกตัวที่ถูกส่งมาแบบ QueryString หรือ GET Method ก็จะถูกส่งต่อไปยัง Flex Application โดยอัตโนมัติแล้วครับ

Passing request data to Flex applications

การส่ง Parameters ให้ Flex นั้นมีด้วยกัน 2 วิธีดังต่อไปนี้ครับ

  • Using flashVars
  • Using query string parameters

โดยส่วนตัวผมแล้วจะใช้วิธี flashVars เนื่องจากวิธีที่สองนั้นจำเป็นต้องมี Flex Data Services หรือ Flex Server นั่นเอง

ตามไปอ่านต่อของแต่ละวิธีได้ที่ Passing request data to Flex applications

File Upload in Flex/Flash

เป็นที่รู้กันว่า Flash และ Flex ไม่มี Component สำหรับ File Upload โดยตรง ทำให้ต้องใช้เทคนิคเล็กน้อยดังนี้ครับ

File Upload in Flex/Flash in Internet Explorer