目前我都是用一行解決外部傳來的變數
var XML_URL:String=stage.loaderInfo.parameters.XMLPath || "mySquare.xml";
宣告變數
public var xmlLoader:URLLoader = new URLLoader();
宣告當xmlLoader讀完後所引發的事件
//讀完後就去執行showXML函式
xmlLoader.addEventListener(Event.COMPLETE, showXML);
然後myXMLPath是我自己命名從外部傳進來的變數
//如果沒有指定變數的話,就讀跟Flash檔同一層的default.xml檔
//要不然就是讀我們自己指定的XML路徑
if(loaderInfo.parameters.myXMLPath == undefined || loaderInfo.parameters.myXMLPath =="")
{
xmlLoader.load(new URLRequest("default.xml"));
}
else
{
xmlLoader.load(new URLRequest(loaderInfo.parameters.myXMLPath));
}
讀完了
就會執行showXML函式
public function showXML(e:Event):void
{
var mycool:XML = new XML(e.target.data);
===============我是註解=======================
之後就可以用mycool.setting.hello.text()去讀XML的內容了
像上面那句就可以讀到下面XML的"你好"
<setting>
<hello>
你好
</hello>
</setting>
===========================================
}
另外補上HTML裡面傳來的外部變數
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="600" height="300">
<param name="movie" value="flash/MyFlash.swf">
<param name="quality" value="high">
<param name="FlashVars" value="myXMLPath=xml/MyFlash.xml">
<embed src="flash/MyFlash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="600" height="300"></embed>
</object>
</body>