วิธีการเรียกคลาสที่อยู่ใน SWC ขณะรันไทม์ (โดยไม่ต้องประกาศให้ Flash รู้จักไว้ก่อน) by Ziah
Jan0
โดยปกติแล้วเวลาที่เราจะเรียกใช้คลาสต่างๆใน SWC ที่เราใส่ไว้ใน Library นั้นจะต้องมีการเรียกคลาสนั้นๆ(เรียกชื่อ)ในโค้ดเลย เช่น
var mc:SpecialClass1= new SpecialClass1();
var mc:SpecialClass2= new SpecialClass2();
var mc:SpecialClass3= new SpecialClass3();
…
ทีนี้ปัญหาอยู่ที่ถ้าสมมติเราต้องการเรียกแบบนี้ 20 คลาส เราต้องมานั่งประกาศทั้งหมดหรืออย่างน้อยก็ต้องประกาศชื่อทิ้งไว้ให้ตัว Flash ได้ import เข้ามาก่อน เช่น
SpecialClass1;
SpecialClass2;
SpecialClass3;
…
วันนี้เลยมาเสนอวิธีเรียกผ่านสตริง ซึ่งสามารถใช้ลูปรันขณะรันไทม์ได้ครับ
- ให้เราคลิ้กขวาที่ Project ของเราแล้วเลือก Properties ครับ
- จากนั้นไปที่หัวข้อ Flex Compiler และตรงช่อง Additional compiler arguments: ให้ใส่คำสั่งพร้อม path ของ swc ของเราซึ่งต้องย้ายเข้ามาอยู่ใน assets ก่อนนะครับ(ปกติจะไว้ใน libs) ในรูปแบบดังนี้ครับ
-include-libraries /assets/myclass.swc
จากรูป Class ทั้งหมดที่เราสร้างไว้ใน emo.swc และ action.swc ก็จะสามารถเรียกขณะรันไทม์ได้แล้วล่ะครับ ยกตัวอย่าง
for(var i:int=1;i<=20;i++)
this.addChild(new this["SpecialClass"]+i)
เท่านี้ก็จะได้ทั้ง 20 คลาสขณะรันไทม์ได้เลยล่ะครับ
credits : http://www.thegrego.com/2012/03/20/swc-file-as-embedded-runtime-asset-library/
Enjoy this article?
Consider subscribing to our RSS feed!
ไม่มีความเห็น
ยังไม่มีความเห็น