Tag: Tips

หลุมพลาง Auto Scaling feature จาก corona

เคสนี้เรียกว่า “ขุดหลุมฝังตัวเอง” เกิดการแสดงขนาดภาพเพี้ยนในเกมส์ จากการพยายาม swap ภาพเองเมื่อ resolution ของ devices สูง

จากกำหนดการแสดงผลของ Application ไว้ที่ resolution ต่ำๆ เช่น 320×480 และทำการแสดงผลภาพบน retina display / ipad corona จะทำการปรับภาพเป็น dynamic scale โดยหากภาพที่ใช้การโหลดรูปแบบ newImageRect() จะได้รับการเปลี่ยนภาพให้โดยอัตโนมัติ เป็นชุด 2x แต่ภาพที่โหลดแบบ newImage() ต้องใส่ parameter เพื่อบังคับให้แสดงแบบไม่ dynamic scale เพิ่ม เมื่อทำการเปลี่ยนภาพเองผ่านโปรแกรม !!

ที่สำคัญ คือ simulator จะไม่แสดง error แต่เมื่อทดสอบใน devices จึงจะพบ…T T

Today I want to add Hibernate feature to Vista?

And I can’t find it in the control panel / power management section. After google around then I found the solution.

To disable hibernation:
Click Start. Type “powercfg /hibernate off” and then Press Ctrl+Shift+Enter.
To enable hibernation:
Click Start. Type “powercfg /hibernate on” and then Press Ctrl+Shift+Enter.

A command prompt will appear and disappear. The program doesn’t give you any feedback anyway, so you’re not missing anything.
By press Ctrl+Shift+Enter is a shortcut to run a program as an Administrator.

ฟันธงโหลดภาษาไทยใน XML ด้วย AS3 จาก ServerSide

หัวข้อนี้ไม่เขียนภาษาไทยคงจะแปลก เพราะเกี่ยวกับการดึงข้อมูลภาษาไทย จากไฟล์ XML หรือจากการส่งข้อมูลจาก Server แบบ XML Format เรื่องของเรื่องคือ พอดีได้มีโอกาสต้องทำงานดึงข้อมูลภาษาไทยมาแสดงบนหน้าเว็บ ซึ่งเนื้องานที่ทำอยู่ทุกที ไม่ค่อยได้ใช้ภาษาไทยเท่าไหร่ สรุปคือ เกิดปัญหาขึ้น แสดงได้บ้าง ไม่ได้บ้าง มี random character แปลกๆ ต่อท้ายข้อมูลที่โหลดมาบ้้าง ทำให้เกิด XML not well-formed ฟ้องขึ้นมา (ตัวอย่าง well formed xml) สุดท้ายไ้ด้ความช่วยเหลือจาก katopz และ joke และทำให้แก้ปัญหาไปได้ จึงอยากเอามาแบ่งปัน เผื่อว่าจะช่วยลดเวลาในการแก้ปัญหาของท่านอื่นๆ ได้ต่อไป ดังนี้

1. ฝั่ง flash โหลด XML ตามปกติ แต่ห้ามใช้ System.useCodePage = true; ถ้ามีให้ comment ทิ้งไป เนื่องจากเราจะใช้การ encode ข้อมูลแบบ UTF-8 ซึ่งจะกำหนดมากจาก xml ที่โหลดเข้ามา หากกำหนดให้ใช้ System.useCodePage จะเป็นการบังคับให้แฟลชใช้การ encode ข้อมูลตาม System default ของเครื่องผู้ใช้ ซึ่งเมื่อส่งข้อมูลมาแบบ UTF-8 แน่นอนว่าภาษาไทยมันจะแสดงไม่ได้อย่างแน่นอน และการเตรียมการฝั่ง Flash จะจบเพียงแค่นี้ (จริงๆ)

ส่วนวิธีการอ่านข้อมูล XML ลองอ่านกระทู้ของน้องก่อ ดูนะครับ เขียนไว้ละเอียดดีครับ
ทำงานกับฐานข้อมูลแบบ Online ด้วย Flash และ PHP
Flash+XML ตอนที่ 1

2. ถัดมาส่วนที่เป็นเทคนิคสำคัญในการที่จะทำให้ส่งข้อมูลภาษาไทยสำเร็จ คือ ฝั่ง XML นี่เอง ที่สำคัญอย่างยิ่ง ดังนี้

2.1 ข้อมูลที่ส่งมาทั้งหมด ต้อง encode เป็นแบบ UTF-8 (วิธีแปลงไฟล์เพื่อทดสอบง่ายๆ คือ ใช้ notepad เปิด xml ไฟล์ก่อน หลังจากนั้นเลือก Save As และเลือก Encoding เป็น UTF-8 ก็จะได้ไฟล์ไว้ทดสอบ – credit: katopz)

2.2 ข้อมูลภาษาไทยทั้งหมด ควรที่จะเก็บอยู่ภายใน tag value ของ xml ไม่ใช่ attribute และครอบข้อมูลภาษาไทยทั้งหมดด้วย <![CDATA[ภาษาไทย]]]> (credit: katopz และ joke) เช่น

<xml>
<title><![CDATA[กรุงเทพมหานคร]]></title>
<link>http://www.bangkok.com</link>
</xml>

2.3 ใส่ header ของ XML Data ที่ส่งกลับมาเป็น <?xml version=”1.0″ encoding=”utf-8″ ?>

2.4 หากยังไม่ได้ ให้ตรวจสอบอีกครั้งว่าข้อมูลที่ส่งมา encode เป็น UTF-8

2.5 หากยังไม่ได้ ให้ตรวจสอบอีกครั้งว่าข้อมูลที่ส่งมา encode เป็น UTF-8 และไม่ได้ encode ซ้ำซ้อนเพราะจะทำให้ข้อมูลผิดพลาดได้

2.6 หากยังไม่ได้ ทดสอบด้วยไฟล์ที่ได้มากจาก notepad และ encode ด้วย UTF-8

ถ้าทำตามข้างบนทั้งหมด ผมมั่นใจว่าน่าจะได้อย่างแน่นอนครับ และขอบคุณ katopz และ joke อีกครั้งสำหรับเทคนิคดีๆ ครับ

Useful HexColor Extract Code

This code help me solve many cool effect and also shorten my writing. Also sometime it is easily to forget so here is another good tips to note on here 🙂

var colour:uint = 0xFF297400;
var A:Number = colour >> 24 & 0xFF;
var R:Number = colour >> 16 & 0xFF;
var G:Number = colour >> 8 & 0xFF;
var B:Number = colour & 0xFF;

// RGB
var colourRBG:uint = (R << 16 | G << 8 | B);

// ARGB
var colourARBG:uint = (A << 24 | R << 16 | G << 8 | B);

Radians & Degrees

This math always come back to me after a certain of time and take me 5 – 10 minutes to think or look around the correct one. So I write this down for myself and others for save time to look around.

radians = degrees * Math.PI / 180
degrees = radians * 180 / Math.PI

P.S.
360 degrees = 2 * Math.PI (radian)