Groups | Blog | Home
all groups > flash actionscript > january 2006 >

flash actionscript : Trying to Loop Through XML Nodes



pinion247
1/23/2006 8:57:08 PM
Hello to all,

I have an XML file with various headlines... each headline consists of a
title, image path, and link. I've created the ActionScript below, which can
pull a single XML headline, but I need to it go through all of them and then,
if possible, loop back around. Can anyone point me in the right direction...
I'm stuck!



_root.createEmptyMovieClip("mcImageHolder",1);
mcImageHolder._x = 214;
mcImageHolder._y = 4;

var allHeadlines:XMLNode = new XMLNode();
var currentHeadline:XMLNode = new XMLNode();

var headlinesXML:XML = new XML();
headlinesXML.ignoreWhite = true;
headlinesXML.onLoad = function(ok:Boolean)
{
if(ok == true)
{
allHeadlines = headlinesXML.firstChild;
currentHeadline = allHeadlines.firstChild;
displayHeadline(currentHeadline);
setInterval(newHeadline(), 7500);
}
else
{
xmlHeadline.text = "No current headlines";
}
}
headlinesXML.load("headlines/shape.xml");

displayHeadline = function(headlineData:XMLNode)
{
//display headline
var headlineNode:XMLNode = new XMLNode();
var headlineTextNode:XMLNode = new XMLNode();
headlineNode = headlineData.firstChild;
headlineTextNode = headlineNode.firstChild;
xmlHeadline.text = headlineTextNode.nodeValue;

//display image
var imageNode:XMLNode = new XMLNode();
var imageTextNode:XMLNode = new XMLNode();
imageNode = headlineNode.nextSibling;
imageTextNode = imageNode.firstChild;
mcImageHolder.loadMovie(imageTextNode.nodeValue);
mcImageHolder.x = 140;

//add link to "read more" button
var linkNode:XMLNode = new XMLNode();
var linkTextNode:XMLNode = new XMLNode();
linkNode = imageNode.nextSibling;
linkTextNode = linkNode.firstChild;
xmlLink.onPress = function()
{
getURL(linkTextNode.nodeValue);
}
}

newHeadline = function()
{
if (currentHeadline.nextSibling != null)
{
currentHeadline = currentHeadline.nextSibling;
displayHeadline(currentHeadline)
}
}
pinion247
1/23/2006 10:57:32 PM
Well, I went ahead and solved my own issue... I'll post it below for anyone
interested. All of this code was found at www.tomontheweb.ca and then modified
to suite my own needs.






_root.createEmptyMovieClip("mcImageHolder",1);
mcImageHolder._x = 214;
mcImageHolder._y = 4;

var allHeadlines:XMLNode = new XMLNode();
var currentHeadline:XMLNode = new XMLNode();

var headlinesXML:XML = new XML();
headlinesXML.ignoreWhite = true;
headlinesXML.onLoad = function(ok:Boolean)
{
if(ok == true)
{
allHeadlines = headlinesXML.firstChild;
currentHeadline = allHeadlines.firstChild;
displayHeadline(currentHeadline);
setInterval(anotherHeadline, 5500);
}
else
{
xmlHeadline.text = "No current headlines";
}
}
headlinesXML.load("headlines/shape.xml");

displayHeadline = function(headlineData:XMLNode)
{
//display headline
var headlineNode:XMLNode = new XMLNode();
var headlineTextNode:XMLNode = new XMLNode();
headlineNode = headlineData.firstChild;
headlineTextNode = headlineNode.firstChild;
xmlHeadline.text = headlineTextNode.nodeValue;

//display image
var imageNode:XMLNode = new XMLNode();
var imageTextNode:XMLNode = new XMLNode();
imageNode = headlineNode.nextSibling;
imageTextNode = imageNode.firstChild;
mcImageHolder.loadMovie(imageTextNode.nodeValue);
mcImageHolder.x = 140;

//add link to "read more" button
var linkNode:XMLNode = new XMLNode();
var linkTextNode:XMLNode = new XMLNode();
linkNode = imageNode.nextSibling;
linkTextNode = linkNode.firstChild;
xmlLink.onPress = function()
{
getURL(linkTextNode.nodeValue);
}
}

function anotherHeadline()
{
if (currentHeadline.nextSibling != null)
{
currentHeadline = currentHeadline.nextSibling;
displayHeadline(currentHeadline);
}
else
{
currentHeadline = allHeadlines.firstChild;
displayHeadline(currentHeadline);
}
}
AddThis Social Bookmark Button