2013-03-14 75 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