ประสบการณ์การพอร์ท Flex 4.0 Application ไปยัง Flex 4.6 Mobile Application สำหรับลง Blackberry!! by Ziah
Jan0
หลังจากที่ได้ไปงาน Port-A-Thon ของ Blackberry เมื่อเดือนก่อนเลยได้วิธีการที่จะนำเกมของเราที่อยู่ใน Flex 4.0 ซึ่งเป็น Web Application ไปรันใน Blackberry ที่ต้องเป็น Mobile Application (แต่ทำการรันเพียงใน Local เท่านั้นนะครับ ยังไม่มีการติดต่อ Server ใดๆ) ซึ่งจะว่ายากก็ไม่ยาก จะว่าง่ายก็ไม่ง่ายซะทีเดียว โดยวิธีการมีดังนี้จ้า
• ในขั้นแรก เนื่องจากใน Adobe Flash Builder 4.5+ มีการซัพพอร์ทการเขียน Mobile Application ลง OS ของโทรศัพท์มือถือต่างๆ เราจึงต้องย้าย sdk จากเกมของเราที่อยู่ใน Flex4.0 ไปอยู่ในเวอร์ชั่นใหม่ๆ โดยที่เลือกคือ Flex 4.6 ดังนั้นก็เริ่มจากสร้างโปรเจ็คกันก่อน
• ตั้งชื่อโปรเจ็คและตั้งค่า SDK
• เลือก Target Platforms เป็น Blackberry และตั้งค่า Application
• จากนั้นคัดลอกโฟลเดอร์ที่มีโค๊ดและไลบรารี่ของ Flex Application จาก 4.0 ไปวางทับใน 4.6
• Refresh โปรเจ็คใหม่ของเราเพื่ออัพเดทโค๊ดที่ก็อปปี้มาครับ
• ก็อปปี้โค๊ดจากตัว Main Application เก่าไปไว้ในตัวใหม่ แล้วลบตัวเก่าได้เลยครับ
• Error ก็จะโผล่มาเยอะแบบนี้แหละครับ เวลาย้ายเวอร์ชั่น SDK จาก 4 ไป 4.6 หลักๆก็แทบจะไม่ใช้แท็ก mx แล้ว เราก็แก้ให้เป็น Spark ให้หมดครับ
• Debug Configurations ตั้งค่าต่างๆที่จะรัน ถ้าเข้ามาครั้งแรกกด Configure… เพื่อเพิ่มตัวที่จะรันครับ
• จะเป็นหน้าควบคุม Device กับ Simulator ที่เรามีอยู่ ถ้าต้องการเพิ่มแนะนำให้เลือก Run Blackberry Deployment Setup Wizard เลยครับใช้ง่าย
• กด Next มาที่แท็บที่สอง ให้เราเลือกค้นหา Device หรือ Simulator ได้ตามที่เราจะใช้เลยครับ ถ้าเป็น Simulator ก็ใช้ได้เลยครับถ้าเป็น Device ก็จะต้องใส่ Signed Keys และเซ็ท Debug Token ซึ่งขอได้จาก https://www.blackberry.com/SignedKeys/codesigning.html
เมื่อเสร็จแล้วก็กด Finish และ OK ก็จะกลับไปหน้า Debug Configurations อีกครั้งถ้าเราตั้งค่าถูกต้องหมดแล้วก็รันได้เลยครับ ถ้าเรามีเครื่อง BB10 แล้วก็สามารถ Run เพื่อให้ Application เข้าไปอยู่ใน BB10 ของเราได้เล้ย!!
JSON Encode และ Decode ใน Flash Builder 4.6 by shippo
Apr0
สืบเนื่องจาก บทความนี้ ผมต้องการที่จะส่งข้อมูลจาก php มายัง flex ในรูปแบบ JSON แต่ว่าในกระทู้นี้จำเป็นต้องหาไฟล์ corelib.swc หรือ as3corelib.swc แล้ว import เข้ามาช่วยทำการ encode และ decode ข้อมูลที่ส่งมาจากไฟล์ php แต่สำหรับ Flash Builder 4.6 ที่ผมใช้อยู่นั้น ผมก็ได้ลองทำตามกระทู้นี้ทุกขั้นตอน แต่ก็ยังเกิด error message ตามนี้
1120: Access of undefined property JSON.
Can not resolve a multiname reference unambiguously. JSON (from C:\Program Files\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0\frameworks\libs\player\11.1\playerglobal.swc(JSON, Walker)) and com.adobe.serialization.json:JSON (from C:\Users\shippo\Downloads\corelib.swc(com.adobe.serialization.json:JSON)) are available.
ทำให้ทราบว่า class JSON มันดันซ้ำกันระหว่างไฟล์ playerglobal.swc (ซึ่งมีมากับ Flash Builder 4.6) และ corelib.swc มันจึงรันไม่ได้ซักที ก็พยายามเสิร์ชหาใน Google จนได้ความว่าใน Flash Builder 4.6 นั้น การที่จะ Encode หรือ Decode ข้อมูลที่มาในรูปแบบ JSON สามารถทำเลยโดย
1. การ decode JSON
var aData:* = JSON.parse(e.result as String);
จากตัวอย่างข้างต้นเป็นการ decode JSON ใน Flash Builder 4.6 แทนการใช้ JSON.decode
2. การ encode JSON
var objStr:String = JSON.stringify( {name:”Todd Anderson”, company:”Infrared5″, phone:15558576309}, deflate );
จากตัวอย่างข้างต้นเป็นการ encode JSON ใน Flash Builder 4.6 แทนการใช้ JSON.encode
ซึ่งทั้ง JSON.parse และ JSON.stringify เป็นเมธอดที่มีอยู่แล้วในไฟล์ playerglobal.swc หากต้องการเพียงแค่ encode และ decode ข้อมูลรูปแบบ JSON เราไม่จำเป็นต้องใช้ corelib.swc หรือ as3corelib.swc ก็ได้