OOP ใน Flash cs 5.5 ตอนที่ 1

ในที่สุด blog ของ RMUTP ก็กลับมาอีกครั้ง

 

มีอาจารย์ท่านหนึ่งถามผมตามนี้

"ผมขอรบกวน

อาจารย์ให้ความหมายของ constructor และตัวอย่างการเขียน code ที่เกี่ยวกับมันใน action script 3.0 ด้วยครับ

และขอรบกวนให้ความหมายของ instance และตัวอย่างการเขียน code ที่เกี่ยวกับมันใน action script 3.0 ด้วยครับ

และการประกาศ object และตัวอย่างการเขียน code ที่เกี่ยวกับมันใน action script 3.0 ด้วยครับ"

ผมขอยกตัวอย่างก่อนแล้วค่อยอธิบายนะครับ

ตัวอย่าง Test class

  1. /********************/
  2. package 
  3. {
  4. import flash.display.MovieClip;
  5. import flash.text.TextField;
  6.  
  7. public class MyTestClass extends MovieClip {
  8. public function MyTestClass()
  9. {
  10. trace("This is Constructor!"); Constructor คือ อะไร และ เริ่มจากตรงไหนครับ
  11. var Instance1:MyInstance = new MyInstance(); ตรงนี้คือ instance ใช่มั้ยครับ สรุป instance เกิดจาก MyInstance รึเปล่าครับ
  12. Instance1.MyMethod1();
  13. }
  14.       }
  15. }
  16. /************************/
  17. ตัวอย่าง class
  18. /************************/
  19. package 
  20. {
  21. import flash.display.MovieClip;
  22. import flash.text.TextField;
  23.  
  24. public class MyInstance {
  25.  
  26. public function MyMethod1():void
  27. {
  28. trace("This is MyMethod 1");
  29. }
  30.       }
  31. }
  32. /*********************/
2:(หมายถึงบรรทัดที่ 2) เป็นการสร้าง package ครับ
package คืออะไร ตามคำแปลหมายถึง หีบห่อ หรือ ภาชนะที่ใช้บรรจุ
ใน oop ก็มีความหมายทำนองเดียวกันครับ แต่สิ่งที่บรรจุอยู่ก็คือ class ครับ
4:,5:,21:,22: แสดงการเรียก packageที่มีอยู่แล้วมาใช้ครับ
ตอนนี้ใช้แค่ 4:
7:public class MyTestClass extends MovieClip {....}
เป็นการสร้าง class ชื่อ MyTestClass
public หมายถึง class อื่นๆ เอาไปใช้ได้ครับ (ใช้ทำอะไร, ใช้สร้าง object)
8: public function MyTestClass() {....} function นี้ก็คือ constructor
ตามที่อาจารย์ถามมาครับ
มีข้อสังเกต 2 อย่างครับคือ
  1. มีชื่อเดียวกับ class
  2.ไม่มีการกำหนดชนิดของข้อมูลที่ส่งกลับ (return type)
เอาไว้ทำอะไร
  เอาไว้ให้มันทำงานเมื่อมีการสร้าง object ครับ
บางครั้งเราอาจจะต้องการกำหนดค่าตัวแปร
หรือทำงานบางอย่างเมื่อมีการสร้าง object
จากตัวอย่างให้แสดงข้อความใน output window ตามบรรทัดที่ 10
7:extends แสดงว่าเป็น sub class ของ MovieClip
 11:เป็นการสร้าง Instance หรือ Object จาก class MyInstance
12:เป็นการเรียก method MyMethod1 จาก class MyInstance มาทำงานครับ
ข้อสังเกต จะต้องเรียกผ่าน object หรือ Instance ครับ
19: ถึง 31: เป็น class ที่เราสร้างขึ้นมาเพื่อเรียกใช้ครับ
26: ถึง 29: เป็น method ง่ายๆ เพื่อทดสอบครับ
 ผลการวิ่งด้านล่างครับ
 flash-1


7 thoughts on “OOP ใน Flash cs 5.5 ตอนที่ 1

  • New Hands

    ขอบคุณมากครับ อาจารย์อธิบายตัวอย่างได้กระจ่างมากครับ มีประโยชน์มากสำหรับผู้ที่กำลังเริ่มต้นฝึกเขียน OOP ด้วยflash cs 5.5 หวังว่าอาจารย์คงให้ความอนุเคราะห์เขียนเรื่องแนวนี้หรือสิ่งที่ควรทราบอื่นๆสำหรับ OOP ใน flash cs 5.5 อีกต่อไปเรื่อยๆนะครับ สักวันหนึ่งอาจารย์อาจจะได้เห็นผลงานการประยุกต์ใช้จากบทเรียนเหล่านี้ และถ้ายังมีประเด็นใดที่ยังไม่เข้าใจ คงต้องขอรบกวนเรียนถามอาจารย์อีกครับ

    Reply
  • New Hands

    1. var plane:Object = new Object();// สร้าง ออบเจ็ค ขึ้นมาใหม่ ชื่อ plane
    2. plane.pitch = 0; //กำหนดค่า pitch ขึ้นเอง ให้แก่ออบเจ็ค ชื่อ plane
    3. plane.roll = 5; //กำหนดค่า roll ขึ้นเอง ให้แก่ออบเจ็ค ชื่อ plane
    4. plane.yaw = 5; //กำหนดค่า yaw ขึ้นเอง ให้แก่ออบเจ็ค ชื่อ plane
    5. trace(plane.pitch);

    6. function showPlaneStatus(obj:Object):void{
    7. trace(obj.pitch);
    8. trace(obj.roll);
    9. trace(obj.yaw);
    10. }
    11. showPlaneStatus(plane);
    ขอเรียนถามอาจารย์ดังนี้
    1. บรรทัดที่ 6 เป็นการประกาศ วัตถุ (object) ขึ้นมาใหม่อีกตัวหรือเปล่าครับ
    2. บรรทัดที่ 1 และ 6 มีอะไรที่แตกต่างกันครับ
    ขอบคุณครับ

    Reply
    • wanapun.w Post author

      Ans.1. line 6-line 10. เป็นการสร้าง function (method) ชื่อ showPlaneStatus ครับ
      Ans.2.Line 1 เป็นการสร้าง Object ครับ

      Reply
  • New Hands

    อยากให้อาจารย์ได้ให้ความรู้เกี่ยวกับ
    1. ให้คำอธิบาย static methods พร้อมยกตัวอย่างการเขียน code การเข้าถึง การเรียกใช้งาน ฟังก์ชัน หรือ ตัวแปร ด้วยครับ
    2. ให้คำอธิบาย instance methods พร้อมยกตัวอย่างการเขียน code การเข้าถึง การเรียกใช้งาน ฟังก์ชัน หรือ ตัวแปร ด้วยครับ
    3. ให้คำอธิบาย Bound methods พร้อมยกตัวอย่างการเขียน code การเข้าถึง การเรียกใช้งาน ฟังก์ชัน หรือ ตัวแปร ด้วยครับ
    4. ให้คำอธิบาย constructor methods พร้อมยกตัวอย่างการเขียน code การเข้าถึง การเรียกใช้งาน ฟังก์ชัน หรือ ตัวแปร ด้วยครับ

    ขอขอบพระคุณมากครับ

    Reply

Leave a Reply to New Hands Cancel reply

Your email address will not be published. Required fields are marked *

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>