Skip to main content
April 24, 2013
Answered

dynamic to load text & image from XML. How ?

  • April 24, 2013
  • 1 reply
  • 1128 views

Hello,

I have the code below to display some text and image on the screen how to modify the code to make it more dynamic:

var xmlData:XML = new XML(MovieClip(this.parent).xmlDocs[3]);

// Add Title

rssNews.rss1.title1.text = xmlData.news[0].title;

rssNews.rss2.title2.text = xmlData.news[1].title;

rssNews.rss3.title3.text = xmlData.news[2].title;

rssNews.rss4.title4.text = xmlData.news[3].title;

rssNews.rss5.title5.text = xmlData.news[4].title;

rssNews.rss6.title6.text = xmlData.news[5].title;

rssNews.rss7.title7.text = xmlData.news[6].title;

rssNews.rss8.title8.text = xmlData.news[7].title;

rssNews.rss9.title9.text = xmlData.news[8].title;

rssNews.rss10.title10.text = xmlData.news[9].title;

// Add Description

rssNews.rss1.text1.text = xmlData.news[0].description;

rssNews.rss2.text2.text = xmlData.news[1].description;

rssNews.rss3.text3.text = xmlData.news[2].description;

rssNews.rss4.text4.text = xmlData.news[3].description;

rssNews.rss5.text5.text = xmlData.news[4].description;

rssNews.rss6.text6.text = xmlData.news[5].description;

rssNews.rss7.text7.text = xmlData.news[6].description;

rssNews.rss8.text8.text = xmlData.news[7].description;

rssNews.rss9.text9.text = xmlData.news[8].description;

rssNews.rss10.text10.text = xmlData.news[9].description;

// Add Title

var myLoader:Loader = new Loader();

var fileRequest:URLRequest = new URLRequest(xmlData.news[0].image);

myLoader.load(fileRequest);

rssNews.rss1.image1.addChild(myLoader);

var myLoader2:Loader = new Loader();

var fileRequest2:URLRequest = new URLRequest(xmlData.news[1].image);

myLoader2.load(fileRequest2);

rssNews.rss2.image2.addChild(myLoader2);

var myLoader3:Loader = new Loader();

var fileRequest3:URLRequest = new URLRequest(xmlData.news[2].image);

myLoader3.load(fileRequest3);

rssNews.rss3.image3.addChild(myLoader3);

var myLoader4:Loader = new Loader();

var fileRequest4:URLRequest = new URLRequest(xmlData.news[3].image);

myLoader4.load(fileRequest4);

rssNews.rss4.image4.addChild(myLoader4);

var myLoader5:Loader = new Loader();

var fileRequest5:URLRequest = new URLRequest(xmlData.news[4].image);

myLoader5.load(fileRequest5);

rssNews.rss5.image5.addChild(myLoader5);

var myLoader6:Loader = new Loader();

var fileRequest6:URLRequest = new URLRequest(xmlData.news[5].image);

myLoader6.load(fileRequest6);

rssNews.rss6.image6.addChild(myLoader6);

var myLoader7:Loader = new Loader();

var fileRequest7:URLRequest = new URLRequest(xmlData.news[6].image);

myLoader7.load(fileRequest7);

rssNews.rss7.image7.addChild(myLoader7);

var myLoader8:Loader = new Loader();

var fileRequest8:URLRequest = new URLRequest(xmlData.news[7].image);

myLoader8.load(fileRequest8);

rssNews.rss8.image8.addChild(myLoader8);

var myLoader9:Loader = new Loader();

var fileRequest9:URLRequest = new URLRequest(xmlData.news[8].image);

myLoader9.load(fileRequest9);

rssNews.rss9.image9.addChild(myLoader9);

var myLoader10:Loader = new Loader();

var fileRequest10:URLRequest = new URLRequest(xmlData.news[9].image);

myLoader10.load(fileRequest10);

rssNews.rss10.image10.addChild(myLoader10);

// Add URL

rssNews.rss1.info1.addEventListener(MouseEvent.CLICK, rss01);

rssNews.rss2.info2.addEventListener(MouseEvent.CLICK, rss02);

rssNews.rss3.info3.addEventListener(MouseEvent.CLICK, rss03);

rssNews.rss4.info4.addEventListener(MouseEvent.CLICK, rss04);

rssNews.rss5.info5.addEventListener(MouseEvent.CLICK, rss05);

rssNews.rss6.info6.addEventListener(MouseEvent.CLICK, rss06);

rssNews.rss7.info7.addEventListener(MouseEvent.CLICK, rss07);

rssNews.rss8.info8.addEventListener(MouseEvent.CLICK, rss08);

rssNews.rss9.info9.addEventListener(MouseEvent.CLICK, rss09);

rssNews.rss10.info10.addEventListener(MouseEvent.CLICK, rss10);

function rss01(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[0].url));

}

function rss02(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[1].url));

}

function rss03(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[2].url));

}

function rss04(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[3].url));

}

function rss05(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[4].url));

}

function rss06(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[5].url));

}

function rss07(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[6].url));

}

function rss08(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[7].url));

}

function rss09(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[8].url));

}

function rss10(e:MouseEvent):void

{

          navigateToURL(new URLRequest(xmlData.news[9].url));

}

Regards,

This topic has been closed for replies.
Correct answer kglad

use:


var xmlList:XMLList;

var xmlData:XML = new XML(MovieClip(this.parent).xmlDocs[3]);

xmlList = xmlData.news;

for(var i:int=0;i<xmlList.length();i++)

{

               rssNews["rss"+(i+1)]["title"+(i+1)].text = xmlList.title;

               rssNews["rss"+(i+1)]["text"+(i+1)].text = xmlList.description;

rssNews["rss"+(i+1)]["image"+(i+1)].loader=new Loader();  // if the compiler complains, cast rssNews["rss"+(i+1)]["image"+(i+1)] as a movieclip.  ie:  MovieClip(rssNews["rss"+(i+1)]["image"+(i+1)]).loader

rssNews["rss"+(i+1)]["image"+(i+1)].loader.load(new URLRequest(xmlList.url));

}

1 reply

kglad
Community Expert
Community Expert
April 24, 2013

i don't see where you're displaying any of the loaded images and it's not clear how you want to do that.

April 24, 2013

i display it in a MovieClip name image1 which inside another MovieClip name rss1...

Ok, I have MovieClip with a name of "rssNews" which has another multi MovieClip named from "rss1" to "rss10". each one of this MovieClips "rss1" for example have 4 MovieClips inside it the firts is "title1" to display the title, the secound "text1" to display the description, the third "info1" to NavigateToURL & the last one "image1" to display the image...

Lets start with the display titles only using For statment


var xmlList:XMLList;

var xmlData:XML = new XML(MovieClip(this.parent).xmlDocs[3]);

xmlList = xmlData.news;

for each (var grade:XML in xmlList)

{

               rssNews.rss1.title1.text = xmlData.news[0].title;

}

How to do that same with each title or i have to use add rss1 to rss10 into array with the name of rss and do the same to title...?!

kglad
Community Expert
kgladCommunity ExpertCorrect answer
Community Expert
April 24, 2013

use:


var xmlList:XMLList;

var xmlData:XML = new XML(MovieClip(this.parent).xmlDocs[3]);

xmlList = xmlData.news;

for(var i:int=0;i<xmlList.length();i++)

{

               rssNews["rss"+(i+1)]["title"+(i+1)].text = xmlList.title;

               rssNews["rss"+(i+1)]["text"+(i+1)].text = xmlList.description;

rssNews["rss"+(i+1)]["image"+(i+1)].loader=new Loader();  // if the compiler complains, cast rssNews["rss"+(i+1)]["image"+(i+1)] as a movieclip.  ie:  MovieClip(rssNews["rss"+(i+1)]["image"+(i+1)]).loader

rssNews["rss"+(i+1)]["image"+(i+1)].loader.load(new URLRequest(xmlList.url));

}