AS3 : XMLの読み込み

ライブラリにムービークリップ”MenuItem”をセットし、”MenuItem”のなかにダイナミックテキストで、インスタンス名”titleText”、”dateText”、”articleText”、”urlText”の4個を配置し、画像を読み込むムービークリップ”thumbMc”も配置。 完成したらステージ上から”MenuItem”を削除し、ライブラリの”MenuItem”をクラス名MenuItemでリンケージ設定する。

import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
import caurina.transitions.properties.FilterShortcuts;
import caurina.transitions.SpecialProperty;
FilterShortcuts.init();
ColorShortcuts.init();
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
XML読み込み設定
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
var xmlPath:String = "test.xml";  //XMLファイルへのパス
var xml:XML;  //指定したXMLを変数に
var loader = new URLLoader();//XMLファイルを読み込んで読み込み終わったらxmlLoaded()起動
loader.load(new URLRequest(xmlPath));
loader.addEventListener(Event.COMPLETE, xmlLoaded);
function xmlLoaded(e:Event):void {
//XMLを確認後変数にしcreateMenu()起動
if ((e.target as URLLoader) != null ) {
xml = new XML(loader.data);
createMenu();
}
}
var i:uint = 0;    //カウンター
function createMenu():void {
//XMLのitemの数だけ繰り返し
for each (var item:XML in xml.items.item) {
var menuItem:MenuItem = new MenuItem();    //menuItem作成
//TITLE
menuItem.titleText.text = item.title.toString();
//DATE
menuItem.dateText.text = item.date.toString();
//ARTICLE
menuItem.articleText.text = item.article.toString();
//URL
menuItem.urlText.text = item.link.toString();
//LINK
menuItem.link = item.link.toString();
//THUMB 
var url_thumb : URLRequest = new URLRequest(item.thumb.toString());
var loader_thumb : Loader = new Loader();
menuItem.thumbMc.addChild (loader_thumb);
loader_thumb.load(url_thumb);
//ボタン配置
menuItem.x = 0 + i*menuItem.width;
menuItem.y = 0;
menuItem.buttonMode = true;
menuItem.mouseChildren = false;
//マウスアクションをイベントリスナーに登録
menuItem.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
menuItem.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
menuItem.addEventListener(MouseEvent.CLICK, clickHandler);
stage.addChild(menuItem);    //menuItem配置
i++;    //1回りするたびにカウンター増加
}
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
マウス設定
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
//マウスオーバー
function mouseOverHandler(e:Event):void {
Tweener.addTween(e.target,{_brightness:2.5});
Tweener.addTween(e.target,{_brightness:0, time:0.5 ,transition:"easeOutExpo"});
}
//マウスアウト
function mouseOutHandler(e:Event):void {
Tweener.addTween(e.target,{_brightness:2.5});
Tweener.addTween(e.target,{_brightness:0, time:0.5 ,transition:"easeOutExpo"});
}
//クリック
function clickHandler(e:Event):void {
var request:URLRequest = new URLRequest(e.target.link);
navigateToURL(request);
}
ファイル名:”test.xml”
<?xml version="1.0" encoding="UTF_8" ?>
<data>
<items>
<item>
<date>2009.00.20</date>
<title>NAME</title>
<article>ARTICLE</article>
<thumb>img/test.jpg</thumb>
<link>http://www.google.co.jp/</link>
</item>
<item>
<date>2009.00.20</date>
<title>NAME</title>
<article>ARTICLE</article>
<thumb>img/test.jpg</thumb>
<link>http://www.google.co.jp/</link>
</item>
</items>
</data>
参考サイト

XMLファイルを使ったナビゲーションメニュー

  • このエントリーをはてなブックマークに追加