Tuesday, December 7, 2010

AS3 : Event ใน Flash มีอะไรบ้างนะ?

ในส่วนของ Event เป็นกลุ่มคำสั่งที่ตอบสนองกับอุปกรณ์ป้อนข้อมูล Input เช่น Mouse และ Keyboard เรามาดูว่า ในแต่ละอุปกรณ์มีคำสั่งอะไรให้เล่นกันบ้าง

MouseEvent : เรื่องเม้าส์ๆ

// การใช้งาน MouseEvent แต่ละครั้งควร import Class Mouse Event เข้ามาด้วย
// import flash.events.MouseEvent;

// การเรียกใช้งานจาก Move Clip หรือ Button
//ชื่อ MC หรือ BTN .addEventListener(MouseEvent.คำสั่ง MouseEvent, ชื่อฟังก์ชั่นรองรับคำสั่ง);

btn1.addEventListener(MouseEvent.CLICK, btnClick);
หรือ เรียกบน Scene โดยตรง
stage.addEventListener(MouseEvent.CLICK,btnClick);

** จริงๆแล้วคำสั่งมีเพียบเลยแต่ที่ใช้บ่อยๆก็มี

MouseEvent.CLICK // เมื่อมีการคลิก

MouseEvent.ROLL_OUT // เมื่อเม้าส์ออกจากบนวัตถุที่จับเหตุการณ์อยู่

MouseEvent.ROLL_OVER // เมื่อเม้าส์มาวางบนวัตถุที่จับเหตุการณ์อยู่

MouseEvent.MOUSE_UP // เมื่อผู้ใช้ปล่อยการกดค้างเม้าส์

MouseEvent.MOUSE_DOWN // เมื่อผู้ใช้กดค้างเม้าส์

MouseEvent.MOUSE_WHEEL // เมื่อผู้ใช้สกอร์ลลูกล้อเลื่อนๆตรงกลางเมาส์

MouseEvent.MOUSE_OVER // เมื่อชี้เมาส์ในพื้นที่ ที่กำหนด

MouseEvent.MOUSE_MOVE // จับการเคลื่อนที่ของเม้าส์

Mouse.show(); // การแสดงเม้าส์

Mouse.hide(); // การซ่อนเม้าส์

// flower เป็น mc รูปดอกไม้เอามาแทน ลูกศร
flower.mouseEnabled = false;
--------------------------------------
อื่นๆไปดูได้ที่ Live Docs Adobe
-------------------------------------

KeyboardEvent: เรื่องคีย์บอร์ดดดด

เนื่องจากคีย์บอร์ดมีปุ่มให้กดเยอะแยะ ทั้งตัวอักษร และ ปุ่มฟังก์ชั่นต่างๆ ดังนั้น ถ้าหากต้องการระบุว่าให้กดตัวอักษรอะไร ต้องใช้ KeyCode เข้ามาบอก

Letters
A - 65
B - 66
C - 67
D - 68
E - 69
F - 70
G - 71
H - 72
I - 73
J - 74
K - 75
L - 76
M - 77
N - 78
O - 79
P - 80
Q - 81
R - 82
S - 83
T - 84
U - 85
V - 86
W - 87
X - 88
Y - 89
Z - 90

Numbers
0 - 48
1 - 49
2 - 50
3 - 51
4 - 52
5 - 53
6 - 54
7 - 56
8 - 57
9 - 58

** หากจะทำการเขียนเช็คโค้ด สามารถใช้เงื่อนไขว่า
if(eventName:keyCode ==65){ // ถามว่าเป็นตัว "A" หรือเปล่า
trace("A");
}else{
trace("I don't know what u type");
}


การควบคุมด้วยลูกศรทุกทิศทาง

btn.addEventListener(KeyboardEvent.KEY_UP);
btn.addEventListener(KeyboardEvent.KEY_DOWN);
btn.addEventListener(KeyboardEvent.KEY_LEFT);
btn.addEventListener(KeyboardEvent.KEY_RIGHT);

Monday, December 6, 2010

AS3 : การใช้ function รับส่งค่าตัวแปร

Function คือการทำงานในระดับปฏิบัติงานอย่างใดอย่างหนึ่ง เปรียบได้กับ โรงแรม ที่ประกอบไปด้วยหลายแผนก แต่ละแผนกทำงานแตกต่างกันไป

ตัวอย่าง เช่น

แผนกห้องครัว
function kook(พารามิเตอร์):void{
//ทำงานส่วนของการทำอาหาร
}

แผนกพีอาร์
function PR(พารามิเตอร์):void{
//ทำงานส่วนของ PR
}

แต่การที่ฟังก์ชั่นจะทำงานได้ ต้องมีการส่งค่า หรือมีคำสั่งมาจากเหตุการใดๆ เช่นการกดปุ่มทำงานบน Stage หรือ Panel พื้นที่ขาวๆที่วาง Object ต่างๆนั่นแหละคับ

เช่น

// กำหนด Symbol ใ้ห้เป็น Button ตั้งชื่อ Instance Name ว่า btnWeb เราจะสั่งให้เมื่อคลิกปุ่มนี้ ให้พิมพ์คำว่า "Hello Thailand" สามารถทำได้ดังนี้
// เริ่มด้วยชื่อ Instance Name ที่เราตั้งไว้ทำปุ่ม ตามด้วยชุดคำสั่งจับเหตุการณ์ คลิก
btnWeb.addEventListener(MouseEvent.CLICK, whenClick)

// รับคำสั่งจากการคลิกปุ่มให้แสดงผล
function whenClick(e:MouseEvent):void{
trace("Hello Thailand");
}
สงสัยไหมว่าทำไม ต้องเขียนพารามิเตอร์เป็น e:MouseEvent จริงๆแล้วตัวแปร e ตั้งขึ้นมารับให้ทำงานในส่วนของอีเว้นที่เกิดจากเม้าส์ "MouseEvent" ดังนั้นจะตั้งชื่อตัวแปร e เป็นอย่างอื่นก็ได้ที่สื่อความหมาย ซึ่งตัวอย่างนี้ยังไม่ได้ใช้ตัวแปร e ทำงานอะไร แต่ถ้าคุณไม่อยากเป็น "พญาร้อย if หรือ กรมมะหมื่นฟังก์ชั่น" เราสามารถใช้ตัวแปร e จำแนกปุ่มไ้ด้ว่า ปุ่มไหนคลิกมา ด้วยคำสั่ง e.target

ยัง งงๆๆ ใช่มะ สมมติว่า มีปุ่มอยู่ 2 ปุ่ม A กับ B ถ้าหากกดปุ่ม A เราจะให้พิมพ์คำว่า "AAA" ถ้าหากว่ากดปุ่ม B เราจะให้พิมพ์ "BBB" แต่ทั้งสองปุ่ม จะส่งไปที่ฟังก์ชั่นเดียว แทนที่จะต้องเขียนเพิ่มอีก 1 ฟังก์ชั่น แล้วลองคิดดู ถ้าหากมี 100 ปุ่ม คุณจะเขียน 100 ฟังก์ชั่นรับค่าเรอะ (เอาสมองไว้ตั้งชื่ออย่างอื่นดีกว่ามะ :-))

วิธีการจะรู้ว่า กดมาจากปุ่มชื่ออะไร จะใช้ e.target นี่แหละคับเป็นตัวบอก

ตัวอย่าง
// กำหนด Instance Name ให้ปุ่มแรกชื่อ A ส่วนปุ่มสอง ชื่อ B
A.addEventListener(MouseEvent.CLICK, whenClick);
B.addEventListener(MouseEvent.CLICK, whenClick);

function whenClick(e:MouseEvent):void{
if (e.target=="A"){
trace("AAA");
} else if(e.target =="B"){
trace("BBB");
} else{
trace("Not Found");
}
}

การเรียกฟังก์ชั่นแบบอื่นๆ

การเรียกใช้งาน Function นอกจากจะสั่งให้ทำงานจากปุ่มได้แล้ว บางกรณี เราอาจจะเขียนชื่อฟังก์ชั่นในฟังก์ชั่นอื่นๆได้อีก

สมมติว่า เราสร้างเกมควบคุมการเก็บคะแนน เมื่อมีการยิงโดนเป้าเกิดขึ้น ภายในฟังก์ชั่น shoot เราอาจจะส่งค่าไปประมวลผลที่ฟังก์ชั่น bomb เพื่อสร้างภาพการระเบิด โดยส่งค่า ชื่อ MovieClip, การเคลื่อนไหว,การหมุน

ตัวอย่าง

function shoot(e:MouseEvent):void{
// คำสั่งต่างๆ จับค่าการยิงถูกเป้า bomb(อาร์กิวเม้นท์);
bomb(mc1,250,100);
}

function bomb(mc:MoiveClip, move:Number,rotate:Number):void{
//สร้างภาพ Effect การระเบิด และการเคลื่อนไหว
mc1.x -=move;
mc1.y +=move;
mc1.rotatation +=rotate;
}
(มีต่อ รวมคำสั่ง MouseEvent, Event และอื่นๆ ยังเขียนไม่เสร็จคับ -_-)

AS3 : การกำหนด Movie Clip

Movie Clip คือการกำหนด Symbol ให้มีการเคลื่อนไหวในตัวเองได้อย่างอิสระ

ยกตัวอย่าง เช่น
กำหนดให้วงกลม Movie Clip ชื่อ "cirCle" เมื่อกำหนดแล้วจะถูกเก็บลง Library หากเราต้องการใช้ ก็สามารถดึงออกมาใช้ได้ไม่จำกัด โดยกำหนด Instance Name แตกต่างกันได้

1. วงกลมแรก ตั้งชื่อ Instance Name : "cirCle1"


2. วงกลมสอง ตั้งชื่อ Instance Name : "cirCle2"


หมายความว่า Movie Clip ตั้งชื่ออะไรก็ได้ ที่มองเป็นสัญลักษณ์ก่อน แล้วนำสัญลักษณ์ไปใช้

ยกอีกตัวอย่างหนึ่ง เช่น

รถจักรยานมี 2 ล้อ คือ ล้อหน้า อาจจะกำหนด instance name เป็น frontWheel และ ล้อหลัง instance name เป็น backWheel โดยที่ชื่อ Movie Clip ชื่อ Wheel

หมายความว่า Movie Clip ชื่อ Wheel สามารถสร้าง Instance Name เป็็นชื่อ frontWheel และ backWheel หากต้องการอ้างถึงสามารถเขียนเป็นคำสั่งได้ดังนี้

//การประกาศค่าให้กับ ล้อหน้า
this.Wheel.frontWheel.scaleX = 5;
this.Wheel.frontWheel.scaleY = 5;

//การประกาศค่าให้กับ ล้อหลัง
this.Wheel.backWheel.scaleX = 5;
this.Wheel.backWheel.scaleY = 5;

** ระวัง X,Y ของล้อเดียวกันไม่เท่ากัน ล้อจะเบี้ยวนะครับ (^_^)

// this เป็น Relative Part ใช้บอกลำดับชั้นของ Symbol จากนอกสุดเข้าไปถึงชั้นในสุดคือ "ล้อหน้า และล้อหลัง"

------------------------------------------------------------------------------------------------
Tips
------------------------------------------------------------------------------------------------
ใน AS2 มักใช้ _root เพื่ออ้างอิง MC ในชั้นแรกสุดบน Stage แต่ใน AS3 ไม่สามารถกำหนด _root หรือ root แทน this ได้ ต้องประกาศผ่านตัวแปร ดังตัวอย่างนี้
// กำหนดตัวแปรชื่อ focus ทำงานแทน root ซึ่ง focus เป็นชื่อที่ผมตั้งเองคับอะไรก็ได้
var focus = root;

//ใช้ตัวแปรใหม่ focus แทน root การประกาศค่าให้กับ ล้อหน้า
focus.Wheel.frontWheel.scaleX = 3;
focus.Wheel.frontWheel.scaleY = 3;

//ใช้ this การประกาศค่าให้กับ ล้อหลัง
this.Wheel.backWheel.scaleX = 5;
this.Wheel.backWheel.scaleY = 5;

ส่วน this ใช้ได้ตามปกติ
------------------------------------------------------------------------------------------------

AS3 : การประกาศตัวแปร

การประกาศตัวแปร
เป็นการสั่งให้โปรแกรมเข้าใจว่าตัวแปรที่เรากำลังจะใช้งานนั้น เป็นตัวแปรประเภทไหน การที่ไม่ประกาศตัวแปร เหมือนคนไปร้านอาหารแล้วสั่งบ๋อยว่าเอาข้าวเปล่าและกับข้าว แต่ไม่บอกว่าจะให้ทำกับข้าวอะไร พ่อครัวก็ไม่รู้จะทำอะไรให้กิน เพราะคำสั่งไม่ชัดเจน เป็นต้น

[var ชื่อตัวแปร:ชนิดตัวแปร = ค่าตัวแปร]

Number : ตัวเลข
var point : Number =10;
trace(point);
-----------------------------------------------------------------------
int : เลขจำนวนเต็มบวกและลบ
var point:int =+2 หรือ -2;
trace(point);
-----------------------------------------------------------------------
uint : เลขจำนวนเต็มบวกอย่างเดียวเท่านั้น
var point:uint = 7; //ถ้าหากใส่ -7 ตัวแปรจะได้ค่าผิดเพี้ยนไม่ได้ค่า -7
trace(point);
-----------------------------------------------------------------------
String : ประกาศค่าให้ตัวอักษร
var point:String = "Point";
trace(point);
-----------------------------------------------------------------------
Boolean : ประกาศใช้ตรรกะ true หรือ false
var point:Boolean = true;
trace(point);
-----------------------------------------------------------------------
Object : ประกาศค่า Object
var point: ชื่อObeject = new ชื่อObject();
trace(point);

// ชื่อ Object สามารถตั้งเองใหม่ก็ได้ เช่นสามารถสร้าง Movie Clip ขึ้นมา แล้วนำมาเป็น Object ได้ แต่ต้องใช้การ linkage ประกาศให้เป็น Class ของ flash.display.MovieClip

Sunday, December 5, 2010

AS3 : เกริ่นนำ

ภาพรวม สิ่งที่ต้องเรียนรู้ในการเขียนหลักๆก็คือ

1. คำสั่งควบคุม Symbols ชนิดต่างๆ เช่น Button, Movies Clip, Graphic
2. การควบคุม Events เมื่อเกิดเหตุการจากการกระทำต่อ Symbols
3. การควบคุมภาพนิ่ง วีดีโอ และเสียง
4. การรับค่า ส่งค่าจากตัวแปรในฟังก์ชั่นต่างๆ
5. การควบคุมตัวอักษร
6. การติดต่อกับองค์ประกอบภายนอก เช่น XML, ภาษาต่างๆ เช่น PHP, ASP.NET, อื่นๆ
7. Advance Code การนำไปประยุกต์ใช้กับงานต่างๆ
8. ต่อยอด กับ Adobe AIR2, FLEX, IPhone OS, Flash lite

ทั้งหมดนี้เป็นเพียงพื้นฐานแรกในการเขียน Flash ซึ่งผมเองอยากจะรวบรวมเอาไว้อ้างอิงในการเขียนคำสั่งได้ภายหลัง (เพราะผมเป็นคนขี้ลืม สมองปลาทอง)

Intro Flash CS5


trace("Hello there, Let's go!!!");

Friday, December 3, 2010

SVN คือไร? ทำไมต้องใช้ล่ะ!

สำหรับนักพัฒนา Flash Developer หรือ Programmer สายอื่น คงเคยเจอปัญหาที่เวลาเราอัพโหลดไฟล์ขึ้นบน Server แล้วไอ้เพื่อนตัวดี ดันอัพโหลดทับ โดยไม่แจ้งล่วงหน้า ปัญหานี้ผมเคยเจอ (ผมเคยโดนลูกค้าด่าเต็มๆ T_T) เจ้า SVN ตัวนี้มีชื่อเต็มๆว่า Subversion จะช่วยให้ปัญหานี้หมดไปได้ สามารถศึกษาวิธีการใช้งาน และวิธีการติดตั้ง ได้ที่ลิ้งค์เหล่านี้ ภาษาไทยจ้ะ


ูู^^ Coffee Break...

เริ่มต้นติดตั้ง Away3D กันดีกว่า : Part 2

(อ่านต่อ Part1)

TIPS
ก่อนอื่น ผมขอแนะนำให้อัพเดท Flash Player เป็นเวอร์ชั่น 10.1 up+ (เร็วนี้ๆจะมี 10.2 แล้ว เล่น VDO ได้เนียนมากๆ ลองคลิกดู แนะนำตัว Flash Player 10.2 ดังนั้น สรุปคือถ้า Flash Player ใครไม่อัพเดท ก็เล่น Run Offline ไม่ได้นะจ๊ะ

ตอนนี้เรามี Project Name ที่ชื่อ MyAway3DInter เป็น Main Project และก็สร้างโฟลเดอร์ เพื่อเก็บ Class ต่างๆเรียบร้อยแล้ว [away3dlite] และ [net] แต่เราจะลองสร้าง Project Name ขึ้นมาใหม่ เพื่อ Run เฉพาะไฟล์ .as โดยเฉพาะ

ดังนั้นให้
1. สร้าง Project Name ใหม่ ตั้งชื่อว่า MyActionScript
2. สร้างโฟลเดอร์ใหม่ ใน src 3 Folder ตั้งชื่อว่า away3dlite / assets / net.hires.debug

2.1 สร้าง Folder คลิกขวาที src > New > Folder


2.2 Copy 2 folder away3dlite / net.hires.debug จาก MyAway3dInter มาใส่ Folder src ของ โปรเจ็ค MyActionScript

2.3 Copy รูปประกอบจากลิ้งค์นี้มาใส่ในโฟลเดอร์ assets (เปิดหน้าต่างโฟลเดอร์ แล้วลากมาใส่ก้อนเดียวเลยง่ายดี)
2.4 ให้ Code ที่ชื่อ Basic_InteractiveObjects.as จาก โปรเจ็ค MyAway3dInter ไปวางที่ โปรเจ็ค MyActionScript เพื่อเตรียมทดสอบสคริป


Copy แล้ววางใน โฟลเดอร์ (default package)


Set ที่ไฟล์ ให้เป็น Default Application


กด Run


3. การแสดงผล ถ้าไม่สามารถแสดงผลได้มี 2 อย่างที่น่าสงสัย นั่นคือ
3.1 Flash Player คุณต่ำกว่า 10.1 แนะนำให้ใช้ FF มันจะอัพเดทให้ Auto
3.2 ใส่ Class ไม่ครบ ลองตรวจสอบ

ผลลัพทธ์ที่ได้ใน ขั้นตอนนี้ จะเป็นดังนี้

ถ้าแสดงผลได้แบบนี้แสดงว่าคุณมาถูกทางแล้วครับ ต่อไปจะเป็นเรื่องการนำเอาไฟล์ภาพในโฟลเดอร์ assets มา Merge พื้นผิวกันนะครับ แล้วพบกัน Part 3 ครับ ^^

เริ่มต้นติดตั้ง Away3D กันดีกว่า : Part 1

ก่อนอื่นต้องทำความเข้าใจว่า Away3D เป็นคลาสสำหรับสร้างภาพ 3 มิติภายในตัวเองลักษณะโครงสร้างแบบ Vector เราจะต้องนำพื้นผิวภายนอกที่ทำจาก Photoshop ทำการ Linkage เข้าไปโดยการ Set ที่ Property และทำการ addChild ภาพที่ Render ได้เข้าไป

ในขณะที่ผมเขียนนี้ Away3D มีแนวโน้มที่ดี จากการพูดคุยกับเทพทั้งหลาย เขาเล่าว่ามันจะไปสวมต่อกับ Flash Player ที่สามารถเล่น 3D ได้เนียนตา ในเวอร์ชั่น 11 ต่อไป ในชื่อของ Molehill ได้ในเร็วๆนี้ ส่วน PaperVision ได้ข่าวว่ากลุ่มนักพัฒนาแยกวงกันไปแล้ว ซะงั้น เพราะไม่มีอะไรใหม่ๆออกมาได้ ปีสองปีแล้ว

มาดูตัวอย่างเว็บไซต์ที่ใช้ Away3D ในการพัฒนาอย่างเว็บนี้ http://www.splinelab.de/ จริงๆแล้ว PV ก็ำทำได้แต่ว่า เพื่ออนาคตที่ดีกว่านักพัฒนา Flash เชื่อกันว่า Away3D ยังดูสดใสซาบซ่ากว่าเจ้าอื่นๆที่ยังเป็นอะไรที่ ฟรีๆๆๆอยู่นะคับ (ขนาด Alternativa Platform สายพันธุ์ Russia ยังยอมให้ เวอร์ชั่น 7 ใฟ้ใช้ฟรีได้ แต่ยังไม่ OpenSource ซะทีเดียว ฟังแล้วก็ งงๆๆ)

Concept ก่อนเริ่มต้น

1. มันคือ Class ดังนั้น จะต้องทำการ Import Class เข้าไป ไม่งั้นมัน Render ไม่ได้ก็แสดงผลไม่ได้

2. ไม่ต้องงง ว่าถ้าเข้าไปดาวน์โหลด Away3D Class แล้วเจออะไรมั่งให้ดาวน์โหลดเต็มไปหมด ให้เข้าใจดังนี้ว่า นักพัฒนาได้แบ่ง เป็น 2 กำมะพัน คือ "away3d " กับ "away3dlite" ไอ้ตัวแรกมาเต็ม หนัก แต่เต็มเปี่ยมไปด้วยคลาสเวอร์ชั่นเต็ม แต่ away3dlite คือตัวเบา มีจัดให้เป็นชุดเล็ก ดังนั้นก็แล้วแต่จะเลือกเล่น แต่สำหรับผู้เริ่มต้นลองเล่นแบบ lite ดูก่อนก็ได้คับ ^^

จุดสังเกตุ

Away3D Class แบบจัดหนัก
import away3d.containers.*;
import away3d.primitives.*;
import flash.display.Sprite;

Away3Dlite Class แบบจัดเบาๆ
import away3dlite.containers.*;
import away3dlite.primitives.*;
import flash.display.Sprite;

3. องค์ประกอบคือ Folder ที่บรรจุคลาสเหล่านี้ ถ้าไม่มีรันไม่ได้ ดังนั้นควรเอามาไว้ใน Folder เดียวกันกับไฟล์ fla นะครับ

เริ่มต้นดาวน์โหลด
1. เข้าเว็บไซต์ http://away3d.com/download/ หาไฟล์ที่ชื่อ away3dlite_1_0_0.zip แล้วดาวน์โหลด


2. เปิดไฟล์คลาย Zip จะเห็น 2 Folder ดังนี้

3. สำหรับใครที่เป็นมือใหม่ Flash Builder ก็ลองทำตามดูนะ เปิดโปรแกรม Flash Builder 4 แล้วสร้างโปรเจ็คใหม่ ในที่นี้ตั้งชื่อ MyAway3dInter


4. เลือกชนิด Application เป็น Web

5. Use default SDK

6. กด Next ลุยโลด

7. Flex จะถามว่าให้เก็บไฟล์แสดงผลที่ Folder ไหน ก็เลือกตาม Default name ไปเลยก็ได้นะ แล้วกด Next

8. กด Finish เป็นอันเรียบร้อยในการสร้าง Project ใน Flex4 ใครมาถึงรูปด้านล่าง ถือว่าเดินขึ้นภูกระดึงได้ครึ่งทางแล้วนะ ^^

** Default Code ตรงนี้ไม่ต้องตกใจ ดูให้เพลินๆ เพราะยังไม่ได้ใช้ตอนนี้นะ


** คำเตือนใครเล่น Collection CS5 แล้วเครื่องไม่แรง รับรอง ตาค้างกันจนสว่างแน่ๆ อัพเกรด HW กันด้วยนะ

9. ตรงนี้สำคัญ เราต้อง เอา Class ตามภาพตัวอย่าง Copy หรือ ลากโฟลเดอร์ ทั้ง away3dlite และ net ไปวางใน Flash Builder ตรงโฟลเดอร์ src เพื่อใช้อ้างอิงคำสั่งตอน Render เข้่าใจ๋


10.ดาวน์โหลดไฟล์ Example เราจำเป็นต้องใช้โค้ดตัวอย่างเพื่อเป็นการศึกษาให้เข้าใจได้เร็วยิ่งขึ้น http://away3d.googlecode.com/svn/trunk/fp10/Examples/Away3DLite/as/src/ ให้ copy ออก
มาเป็นไฟล์ เอาทุกไฟล์เลยนะ

Advanced_Mario1000.as
Advanced_MultiMario.as
Basic_InteractiveObjects.as
Basic_LoadModel.as
Basic_SceneSetup.as
ExCamera.as
ExCameraMove.as
ExCollada.as
ExLayer.as
ExLight.as
ExLookAt.as
ExMD2Cubic.as
ExMQO.as
ExPlane.as
ExSphere.as
ExSphereSpeedTest.as
ExSprite3D.as
Intermediate_Skybox.as
--------------------------------------------------------------------

11. โค้ดตัวอย่างที่ให้ลองดาวน์โหลด จะได้เริ่มต้นง่ายๆ ด้วยการเห็นภาพรวมก่อน ว่ามันทำยังไง ตอนนี้อาจจะยังไม่ใช่เวลาที่จะมาพะวง เรื่องการเขียนโค้ดนะครับ ดูภาพรวมก่อนจะได้รู้ว่า เรายังขาดอุปกรณ์อะไรอยู่อีกหรือเปล่า

ต่อๆๆ นะคับ เมื่อได้ไฟล์ *.as ตามรายการชื่อไฟล์ด้านบนครบแล้ว ให้สร้างโฟลเดอร์ใหม่ใน Project MyAway3dInter > src > คลิกขวา new > Folder > ตั้งชื่อว่า code เสร็จแล้วให้ก๊อปปี้ File *.as ทั้งหมดไปใส่ใน โฟลเดอร์ code


เหตุผลไม่มีอะไรมาก แต่อยากให้เอา Code เหล่านี้ทดลอง Run ให้เห็นภาพก่อนนะครับ ถ้าใคร Run แล้ว Error ให้ดูว่าคลาสมีอยู่หรือเปล่า หรือลืมก๊อปมา หรือคลาสที่ใช้มันอยู่ใน ชุดเต็ม ก็ลองตรวจสอบดูครับ

ในบทความหน้า จะมาลอง Run Script ต่างๆ ก่อนที่จะเริ่มเรียนรู้การเขียน Code Away3D ต่อไป

หน้าเริ่มยาว เดี๋ยวเอาไว้ต่อหน้าต่อไปนะครับ ^^ GogogoGOgogoGOogooo>>>>>>

Flash Player Video 10.2 beta มาดูกันหน่อย


จาก VDO ที่ คุณไทนิค อูโร Flash Engineering ได้แสดงผลการเล่น VDO ในรูปแบบของ Stage Video hardware acceleration ได้เนียนตา และ มีความละเีอียดของภาพค่อนข้างสูงทั้งที่เปิดแบบ Full Screen โดยการใช้ CPU นั้นค่อนข้างต่ำ แทบจะไม่ถึง 11% เลยทีเดียว ในขณะเปิด VDO นี้สามารถใช้งานในหน้าต่าง Browser อื่นโดยที่ หน้าต่าง Flash VDO Playing ไม่หดลงมาอีกต่อไป

เท่ากับว่า Flash Player 10.2 อุดรูรั่วต่างๆได้เนียนจริงๆ ซึ่ง Browser IE9 Support

Getting Started

Follow these steps to get started with the Flash Player 10.2 beta:

  1. Download and install the Flash Player 10.2 beta

    Important: Installing the Flash Player prerelease means you have accepted the terms of the Adobe Software License Agreement. This is prerelease software, not a final release.
  2. Read the release notes for more information about the beta
  3. Read the article Getting Started with the StageVideo API
  4. Send us your feedback and bug reports (English only)
  5. Ask questions and share your feedback in the Labs forums for Flash Player Please note that your submission of comments, ideas, feature requests and techniques on this and other Adobe maintained forums, as well as Adobe's right to use such materials, is governed by the Terms of Use.

Thursday, December 2, 2010

แนะนำ HTML 5!!

HTML เป็นภาษาสำหรับเขียนเว็บไซต์มาช้านาน แต่ปัจจุบันด้วยเทคโนโลยีที่ก้าวล้ำ และพัฒนาอย่างต่อเนื่องทำให้ภาษา HTML ออกเวอร์ชั่นใหม่ออกมา ในเวอร์ชั่น 5 การเขียนภาษา HTML5 หากว่ามีพื้นฐานทางด้านการเขียน CSS มาอย่างต่อเนื่อง ก็จะทำให้การศึกษาง่ายขึ้น (ศึกษาการเขียน CSS ภาษาไทยได้ที่ divland.com หรือที่ ภาษาอังกฤษ w3schools.com นะ)

ทำไมต้องเขียน HTML5?
เดี๋ยวนี้เบราเซอร์ใหม่ๆ เริ่มทยอยใช้มาตราฐานใหม่กันแล้ว และสัมพันธ์กับมือถือที่ mo
bile OS ได้ปรับเปลี่ยนมาใช้รูปแบบใหม่กันแล้ว และยังแคร์ไปถึง iPad ที่ตอนนี้กระแสแรงเหลือเกิน ซึ่งทั้งหมดได้ Support HTML5 กันแล้ว

ส่วนประกอบ HTML5
แน่นอนว่า HTML, CSS, DOM, and JavaScript เอามาปั่นรวมกันเป็น HTML5 (ใครที่ศึกษา Flash AS3 ตอนนี้จะเข้าใจได้ง่าย เพราะการเขียนคล้ายๆกัน)

HTML5 มีไรใหม่?
1. สนับสนุนเรื่องการวาดภาพด้วยคำสั่ง JS
2. เขียนคำสั่งเรียก VDO หรือ Audio มาแสดงผลด้วยคำสั่งไม่กี่บรรทัด ลดการใช้ Flash ได้
3. การเขียนใช้โครงสร้างคล้ายๆ XML จะมี Eliment คำสั่งตามชื่อในส่วนที่เราต้องการ
4. เวลาเขียน ต้องเริ่มต้นด้วย แล้วตามด้วย tag ...
5. การเขียนคำสั่งสามารถตรวจสอบ Browser ที่ไม่ Support ได้ง่ายๆ


ตัวอย่างโค้ด เช่น

<!DOCTYPE HTML>
<html>
<body>

<video src="movie.ogg" width="320" height="240" controls="controls">
Your browser does not support the video tag.
</video>

</body>
</html>



ถ้า Browser ไหนไม่ Support จะแสดงผลนี้ (ประจาน ^^)

แต่ถ้าแสดงผลได้จะโชว์กรอบสีแดง ดูลักษณะ tab ก็รู้แล้วว่าอะไร ชิมิ












มี Browser อะไรบ้างที่ Support

เวอร์ชั่นใหม่ล่าสุดของ Safari, Chrome, Firefox, ส่วน Opera รวมถึง Internet Explorer 9 support แค่บางคำสั่ง และบางการทำงานเท่านั้น แต่ถ้าของมันแรง พวกไม่ Support ก็ต้องรีบปรับขบวนให้เข้ากับก๊วนชาวบ้านอยู่ดีครับ

ดังนั้นใครอยากเริ่มศึกษา ก็ใช้ Browser ดีๆ ของแ๊ก๊ง 3 ช่า Safari, Chrome, Firefox ก็แล้วกันนะครับ ^_^