มาทำความรู้จักกับ RSLs (Runtime Shared Libraries) by

31
Jan
0

RSLs (Runtime Shared Libraries) พูดกันง่ายๆคือการแชร์ library ที่ใช้ในแอพเป็นส่วนกลางในระหว่างการทำงาน จะช่วยลดขนาดของแอพที่โหลดขึ้นมา
ลองดูรูปง่ายๆกันก่อน

เปรียบเทียบระหว่างการใช้ rsls และไม่ใช้

เปรียบเทียบระหว่างการใช้ rsls และไม่ใช้

จากรูปจะเห็นได้ชัดว่า ถ้าไม่ได้ใช้ RSLs แอพแต่ละตัวจะเก็บ library ไว้ในตัวโปรแกรมของแต่ละตัวกันเอง ซึ่งเมื่อรันโปรแกรมแล้ว จะทำให้เกิดการโหลด library ที่ซ้ำๆกันออกมา

ส่วนภาพขวาคือการที่ใช้ RSLs ในการแยก library ออกมา เมื่อรันแอพแต่ละตัว ก็จะไม่มีการโหลดซ้ำของ library อีก

ความเหมาะสมของโปรแกรมที่จะใช้ RSLs คือ

1. เป็นแอพที่มีมินิเกมอยู่ข้างในโดยแยกตัว swf ออกจากกัน

2. ใช้ library เดียวกัน เช่น รูปภาพ ตัวละครในเกม

3. แอพที่มีขนาดใหญ่และต้องการที่จะลดขนาด เพื่อความสะดวกแก่คนที่เข้ามาใช้แอพ

การใช้ List ใน Flex by

30
Nov
0

เราจะมาพูดถึงส่วนประกอบของ List ใน Flex
สิ่งที่พูดถึงนี้อยู่ใน spark.components.list

แท็ก list เวลาเรียกใช้คือ <s> </s> แบบโค้ดตัวอย่างนี้

<s:List x="295" y="207" width="412" height="112" id="prtList1" dataProvider="{usedArr1}" itemRenderer="components.partCustomComponent" />
</s:List>

x, y : จุด x y ที่เราจะวาง list ลงไป
width, height : ความกว้าง ความสูง ของ list ที่เราสร้าง
dataProvider : ข้อมูลที่จะใส่ลงใน list
itemRenderer : component แต่ละตัวใน list

ลงรายละเอียดกันอีกนิด
ข้อมูลที่จะใส่ใน dataProvider จะเป็นข้อมูลแบบ array เช่น

var usedArr:Array =[{"friend_id":1234,"nick":"Paiboon","level":10,"exp":2},
{"friend_id":5678,"nick":"Ziah","level":99,"exp":999999}];

จะมีข้อมูลคือ friend_id เป็น 1234, nick เป็น Paiboon, level เป็น 10, exp เป็น 2

itemRenderer จะเป็นคลาสที่สร้าง component แต่ละตัวออกมา โดยใช้ข้อมูลจาก dataProvider ทีละตัว

public function init():void {
str = data.nick;
exp = data.exp;
level = data.level;
id = "id: "+data.friend_id;
}

data คือข้อมูลจากในอาร์เรย์ . ด้วยชื่อของข้อมูลที่ต้องการ
แล้วจึงนำไปใส่

<s:Label text="name: {str}" y="60" />
<s:Label text="exp: {exp}" y="70" />
<s:Label text="level: {level}" y="80" />

มาดูให้เห็นภาพ (ไม่ตรงตามโค้ดนะจ๊ะ)
หลังจากข้อมูลหนึ่งตัวเข้า itemRenderer แล้ว จะออกมาเป็นลักษณะแบบนี้

พอใช้ข้อมูลทุกตัว ก็จะออกมาเป็นแบบนี้ :D

หยุดลูปไม่รู้จบ จากการแรนดอม by

27
Oct
0

จากการแรนดอมเพื่อเรียงตัวเลขใหม่ที่จะใช้ในการสับเปลี่ยนอาร์เรย์


นี่คือการเขียนแบบตรงๆ ดิบๆ เถื่อนๆ ไม่แนะนำให้ทำตาม!!!

var intArray:Array = new Array();
var i:int = 50;
var j:int = 0;
while (i > 0){
var rand:int = Math.floor(Math.random());
for (var k:int = 0; k < intArray.length; k++){
if (rand != intArray[k]){
intArray[j] = rand;
i--;
j++;
}
}
}

ดูเยอะแยะ วุ่นวายมาก ลูปซ้อนลูป
นี่ยังเขียนไม่เสร็จเลยนะ ได้แค่ตัวเลข 0-49 ที่แรนดอมแล้ว ต้องนำไปดึงอาร์เรย์ตัวเก่ามาเรียงใหม่อีกที


แค่ตรงส่วนนี้ ทำให้เกิดปัญหาหลายอย่าง
1. เกิดการวนลูปซ้ำๆ จากการแรนดอมหลายครั้ง แต่ตัวเลขซ้ำๆกับที่เคยแรนดอมมาในช่วงท้ายๆ
2. หลังจากแรนดอมนานจนเกินไปทำให้เกิด error timeout ซึ่ง timeout โดยทั่วไปจะอยู่ที่ 15 วินาที แล้วทำให้โปรแกรมหยุดการทำงานไปเลย


แต่……..






นี่คือหนทางใหม่ ที่จะไม่เกิดปัญหาเดิมๆนั้น

// arr คือ อาร์เรย์ที่มีข้อมูลอยู่แล้ว ต้องการนำมา shuffle ลำดับใหม่
var randomArray:Array = new Array();
while (arr.length > 0){
var tmp:Array = arr.splice(Math.floor(Math.random()*arr.length), 1);
randomArray.push(tmp[0]);
}

ห๊ะ!!! เสร็จแล้วเหรอ ได้อาร์เรย์ที่สับเปลี่ยนลำดับกันแล้วในอาร์เรย์ที่ชื่อ randomArray


หลักการทำงานคือ นำ arr มา splice ออก ในจุดที่เราแรนดอมออกมา 1 ตัว ได้ออกมาเป็น tmp แล้วเราจึงนำไปใส่ในอาร์เรย์ randomArray


อธิบายง่ายกว่านั้นได้อีกคือ เราเอา arr มาแรนดอมหยิบออกทีละอัน มาโยนใส่ randomArray


ตามโค้ดด้านต้น ท้ายสุด arr จะไม่มีข้อมูลเหลือ ถ้าอยากเก็บข้อมูลแบบเก่าไว้ด้วย อย่าลืมโคลนเก็บไว้ก่อนนะ ;)

ทริคง่ายๆในการใช้ substring หรือ substr by

30
Sep
0

ความแตกต่างระหว่าง substring กับ substr มีความแตกต่างเพียงเล็กน้อย แต่ถ้าใช้ผิดเมื่อไหร่ ผลลัพธ์ที่ได้ออกมาแตกต่างกันมากเลยทีเดียว

เริ่มจากการที่เรามีค่า String ก่อน


var word:String = "Hello World, we come in peace."

เริ่มจากการใช้ substring กันก่อน


word.substring(6, 14); //output: World, w

และการใช้ substr


word.substr(6, 14); //output: World, we come

ความแตกต่างคือ
substring ตัดตัวหนังสือตั้งแต่ตัวที่ 6 จนถึงตัวที่ 14
substring(first letter, last letter);

substr ตัดตัวหนังสือตั้งแต่ตัวที่ 6 ถัดไป 14 ตัว
substr(first letter, length of word);

ไม่ยากเลยใช่มั้ย อย่าเผลอใช้ผิดก็แล้วกันนะ ;)

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน