2013-03-14 58 views
0

我正在Adobe Flash CS5.5(使用ActionScript 3.0)中工作,并试图插入Flickr提要。我想让Flickr图像在一种画廊中展示。这是我的代码,其结果是TEXT中的Flickr提要。我如何让它显示实际的图像?从AS3的Flickr feed加载图像

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!'); 
} 
+0

您的Feed中是否有网址?如果是,则使用URLLoader来获取每个URL,并将结果用作图像。 – Vesper 2013-03-14 12:27:08

+0

我不确定我明白你的意思。你能展示代码的外观吗? – user1390252 2013-03-14 13:53:50

+0

您在装载XML时完全加载图像,但不是XML解析,而是将图像添加到某处。该代码基本上与您的XML加载程序代码相同。 – Vesper 2013-03-14 14:10:09

回答

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无法显示部分加载的图像),它将在舞台上可见。

从那里,你可以把加载器,大部分视为另一个Sprite/MovieClip。

+0

我试过你编写的Loader代码,但无法让它工作。 – user1390252 2013-03-14 18:23:18

+0

在一个空白项目中,将上面的代码(仅**代码)扔到项目中,然后尝试加载https://www.google.com/images/srpr/logo4w.png(Google徽标)。 'Loader'是在AS3中加载图像的方式。有用。这正是班级的意思。您尝试加载的网址不好,或者您一路搞乱了某些内容。 – 2013-03-14 21:18:54

+0

其实,我仍然无法使它工作 - 即使我只是** **使用该代码。不知道为什么。 但Google徽标是**图片** ...我使用的Flickr网址是RSS源。如果我使用此代码,我可以看到一个图像: 'var imageLoader:Loader = new Loader(); var image:URLRequest = new URLRequest(“http://natur.suntuubi.se/datafiles/gallery/1/lejon%20som%20ryter.jpg”); imageLoader.load(image); addChild(imageLoader); imageLoader.x = 200; imageLoader.y = 300;' 但我不能用这种方式使用我的RSS-URL。另外 - RSS包含很多图像,而不是一个。 – user1390252 2013-03-15 10:01:09