これは、Flash をいじって xml ファイルを読み取る最初の試みです。フィードをロードしました。フィード出力テキストをテキストボックスに入れました。
最後のビットは、xml フィードから返されるノードの総数を取得したいということです。また、XML フィードは wordpress カテゴリ固有のフィードです。
例えばチャンネル→アイテム→タイトルのような構造です。フィードから「アイテム」要素の数を数えたいと思いますか?
私はたくさんのことを試しましたが、これを取得することはできません。
これが私がこれまでに持っているものです:
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("{my rss feed}"));
/* This loads the XML */
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
parseData(xmlData);
}
// Here is where i need to get the total number of nodes from my xml file;
// The reason is i want to give my random range function a "maximum" value.
// I'm pulling a random post from the feed
function randomRange(minNum:Number, maxNum:Number):Number
{
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
}
var randomNum = randomRange(0, 3);
function parseData(mTip:XML):void {
flashTip.htmlText = mTip.channel.item[randomNum].description.text();
}
すべての編集を行った最終的なスクリプトを次に示します。AS3 を使用して Flash CS5 でテストしました。それも働いています。たぶん、他の誰かがこれが便利だと思うでしょう。
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("{my wordpress rss feed url}"));
/* This loads the XML */
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
parseData(xmlData);
}
/* This gets the data for today's tip */
function parseData(mTip:XML):void {
var itemXMLList:XMLList = XMLList(mTip..item);
var count:int = itemXMLList.length();
var finalcount:int = count - 1;
//trace(finalcount);
function randomRange(minNum:Number, maxNum:Number):Number
{
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
}
var randomNum = randomRange(0, finalcount);
//trace(randomNum);
flashTip.htmlText = mTip.channel.item[randomNum].description.text();
}