cosmodesktop

Happy Flash/Flex Coder

การอ่านค่า flashvars จาก swf ที่ถูกโหลดเข้ามา

ปัญหาในการพยายามโหลดค่า flashvars จาก swf ที่ถูกโหลดเข้ามาภายใน swf อีกตัว เป็นปัญหาที่เรียกได้ว่าน่าปวดหัวไม่น้อยทีเดียว แต่จริงๆ แล้ววิธีแก้ปัญหานั้นไม่ยากครับ หลังจากที่ผมพยายามแก้ปัญหาและหาข้อมูลอยู่พักใหญ่ ในที่สุดก็ได้ข้อสรุป คือ

ที่ตัว Main นะครับ เวลาอ่านค่า flashvars จะใช้คำสั่ง

var myVar:String = this.root.loaderInfo.parameters.whatever;

ในขณะที่ถ้าต้องการอ่านค่า flashvars จาก swf ที่ถูกโหลดเข้ามาจะต้องเปลี่ยนคำสั่งเป็น

var myVar:String = stage.loaderInfo.parameters.whatever;

การเรียกผ่านตัวแปร stage จะเป็นการเรียกไปยัง display container ของ swf ที่ถูกโหลดเข้ามานั่นเอง

และหากยังไม่ได้ ก็ยังมีอีกวิธี โดยการส่งค่าตัวแปรต่างๆ เข้าไปตอนโหลด swf อีกตัวนั่นเอง

//:: Store loader info
var lInfo:Object = this.root.loaderInfo.parameters;
//:: Flashvars
var fVars:String = "?whee=nada"; //:: Getting the syntax change (? --> &) out of the way with a dummy var

//:: Set path + data
for (var flashVar in lInfo)
{
fVars += "&" + flashVar + "=" + lInfo[flashVar];
}

var myRequest:URLRequest = new URLRequest(String(“/myPath.swf” + fVars));

ที่มา: http://ragona.com/blog/pass-flashvars-loaded-swf/

Leave a Reply

You must be logged in to post a comment.