- stop();
- var my_xml:XML = new XML();
- //宣告my_xml變數,型別:XML
- var xml_url:String = "xml_data.xml";
- //外部載入路徑,型別:字串
- my_xml.ignoreWhite = true;
- //忽略xml裡的空白字元
- //這個屬性,一定要開啟為true
- /*
- 例:
- 跟
-
-
- 結構是不一樣的,因為多了空白,FLASH會認為是一個結點,所以要忽略
- */
- my_xml.onLoad = function(success:Boolean):Void
- {
- //當XML載入成功或失敗時,會執行這個function
- //後方要接一個變數,我們取名為success,型別:布林值
- //如果載入成功,success就為ture,失敗為false
- if (success) {
- //載入成功後,開始播放
- play();
- }
- };
- my_xml.load(xml_url);
- //開始載入
我們以下方的 xml來練習
此XML,把值都寫在nodeValue裡
我們先在場景上放一個Button
取實體名稱為:_mc0
在第二個影格寫上程式
_mc0.onRelease=function(){
trace("第一筆item,label結點值為:"+my_xml.firstChild.firstChild.firstChild.firstChild.nodeValue)
trace("第一筆item,imgURL結點值為:"+my_xml.firstChild.firstChild.childNodes[1].firstChild.nodeValue)
trace("第一筆item,date結點值為:"+my_xml.firstChild.firstChild.childNodes[1].firstChild.nodeValue)
}
這樣就可以得到第一筆item裡的結點值
你可以練習看看如何得到第二筆的結點值
________________我是分隔線__________________
來練習一個簡單的XML相本
一樣使用上方的 xml檔
場景上有二個button,分別為上一張和下一張
放二個動態文字,來顯示label和date
再放一個空白的MovieClip,用來動態載入圖片
當按上一張時,就載入上一張照片
下一張,就載入下一張照片
如果已經是第一張,就保持在一張
如果是最後一張,就保持在最後一張
(怎麼感覺像在把程式碼用中文打出來)
這時候我們需要一個變數,來當索引值
var index:Number = 0
取名為index,初始值為0(一進來時,會先播放第一張,因為XML的第一筆索引值是0,不是1喔)
- stop();
- var index:Number = 0;
- //索印值
- var len:Number = my_xml.firstChild.childNodes.length;
- //xml裡照片數量
- function moveIndex(__num:Number):Void
- {
- //此function,用來處理index的值,加上判斷,避免產生Error
- index += __num;
- // index += __num可以寫成 index = index + __num,二者寫法一樣。
- if (index <>
- index = 0;
- //如果索引值小於0,就保持在0,也就是第一張
- } else if (index > len - 1) {
- index = len - 1;
- //如果索引值大於長度扣一,就保持在最後一張
- //為什麼要扣一,
- //假設xml裡有三筆item,透過length屬性,得到的值會是3
- //但索引值最大只能是2,因為沒有childNodes[3]這筆資料,所以要扣一
- }
- trace('目前的index值為:' + index);
- //設定,將xml裡的值,放到我們指定的地方
- label_txt.text = my_xml.firstChild.childNodes[index].childNodes[0].firstChild.nodeValue;
- //將得到的值,寫到我們指定的物件屬性,原本我們在childNodes都是寫數字,現在換成變數index
- load_mc.loadMovie(my_xml.firstChild.childNodes[index].childNodes[1].firstChild.nodeValue);
- date_txt.text = my_xml.firstChild.childNodes[index].childNodes[2].firstChild.nodeValue;
- }
- prev_mc.onRelease = function():Void
- {
- moveIndex(-1);
- //執行moveIndex,並把參數-1帶進去
- };
- next_mc.onRelease = function():Void
- {
- moveIndex(1);
- //執行moveIndex,並把參數-1帶進去
- };
- moveIndex(0);