从AS3中的Flickr Feed加载图像

时间:2013-03-14 11:19:31

标签: actionscript-3 flickr flash-cs5.5

我正在使用Adobe Flash CS5.5(使用ActionScript 3.0),我正在尝试插入Flickr源。我想让Flickr图像显示在一种画廊中。到目前为止,这是我的代码,其结果是TEXT中的Flickr提要。如何让它显示实际图像?

import fl.controls.TextArea; 

var xmlLoader:URLLoader = new URLLoader(); 
var xmlData:XML = new XML(); 
var texten:TextArea = new TextArea(); 

xmlLoader.load(new URLRequest("http://api.flickr.com/services/feeds/photos_public.gne?tags=snow&format=rss_200"));
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);

function LoadXML(e:Event):void {
    xmlData = new XML(e.target.data);
    trace(xmlData);
    texten.move(25,25);
    texten.setSize(500, 300); 
    addChild(texten);
    ParseXML(xmlData); 
}

function ParseXML(vaderInput:XML):void {
    var i:int = 0;  
    for each (var object:XML in vaderInput.channel.item) {
        texten.text += "" + object.title + "\r";
        texten.text += "" + object.description + "\r";
        texten.text += "\r";
        i++;
    } 
}

function ioErrorHandler(e:Event):void {
    trace('ERROR!');
    trace('Problems reading the XML-file!'); 
}

1 个答案:

答案 0 :(得分:0)

阅读LiveDocs。您希望使用Loader在XML中加载<media:thumbnail/>数据。 Loader类扩展了DisplayObject,但包含了许多URLLoader使用的相同属性/方法。

所以,基本上,你做这样的事情:

var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener( Event.INIT, loaderInitHandler ); //the majority of events for Loader are attached to its contentLoaderInfo property. That is the only reason I included this line
l.load( new URLRequest( /*url goes here*/ );
this.addChild( l );

加载图片,立即将其添加到舞台上。一旦图像完全加载(据我所知,Flash无法显示部分加载的图像),它将在舞台上可见。

从那里,您可以将Loader视为另一个Sprite / MovieClip。