Flexでウェブアルバムが作りたい!!(5)
更新日:2018.07.28
作成日:2010.01.20
user_idとapi_keyは各自のものに置き換えてください。そして、かなりコードはつぎはぎだらけで汚いですがなんとか動いています。なんとか試行錯誤していくうちに、
- EventListenerの概念
- データバインディング
- itemRenderer
あたりがちょっとだけわかってきた気がします。今後の課題としては、やはりポップアップ。 これがくせ者で、なかなか思い通りにデータを連携させることができません。このデータの連携がうまく行かないせいで、卒論にも手がつかず・・・・ 以下は、そのときのソースです。
FlickrSearch.mxml(メインアプリケーション)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundGradientColors="[0xFFFFFF, 0xAAAAAA]"
horizontalAlign="left"
verticalGap="15"
horizontalGap="15" initialize="init()">
<mx:Script>
<![CDATA[
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import mx.collections.ArrayCollection;
//NSID、api_keyを格納
private var user_id:String = "1234567@1234";
private var api_key:String = "1234567890123456789";
private var tags:String = "apple";
private var loop:int = 50;
//返り値のXMLを格納するXMLオブジェクトを生成
private var myXML:XML;
[Bindable]
public var ArrayURL:ArrayCollection;
private function init():void{
//http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=b2e2bdd12587da70a37b430e1f09c2a3&user_id=35571855%40N06
var furl:String = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=" + api_key + "&tags=" + tags;
var myURLReq:URLRequest = new URLRequest(furl);
//リクエスト発行します
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.dataFormat = URLLoaderDataFormat.TEXT;
myXMLLoader.addEventListener(Event.COMPLETE,setPhotoXML);
myXMLLoader.addEventListener(IOErrorEvent.IO_ERROR,isError);
myXMLLoader.load(myURLReq);
}
private function setPhotoXML(e:Event):void{
//読み込んだ後の処理を記述
myXML = new XML(e.target.data);
ArrayURL = new ArrayCollection();
for(var i:int=0;i<loop;i++){
var photo_id:String = myXML.photos.photo[i].@id;
var farm_id:String = myXML.photos.photo[i].@farm;
var server_id:String = myXML.photos.photo[i].@server;
var secret:String = myXML.photos.photo[i].@secret;
var size:String = "m"
var photoURL:String = "http://farm" + farm_id + ".static.flickr.com/" + server_id + "/" + photoid + "" + secret + "_" + size +".jpg"
//var photoURL_m:String = "http://farm" + farm_id + ".static.flickr.com/" + server_id + "/" + photoid + "" + secret + "_" + "m" +".jpg"
ArrayURL.addItem(photoURL);
}
}
//例外処理
private function isError(e:IOErrorEvent):void{
trace("failed to Load photos info");
}
]]>
</mx:Script>
PopUpWindow.mxml(MXMLコンポーネント)
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300" showCloseButton="true"
close="PopUpManager.removePopUp(this);" initialize="showImg(event)">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
[Bindable]
public var bigImg:String;
private function processLogin():void {
// Check credentials (not shown) then remove pop up.
PopUpManager.removePopUp(this);
}
private function showImg(event:Event):void{
//bigImg = event.target.pop.thumbnil;
}
]]>
</mx:Script>
<mx:Image source="{}">
</mx:Image>
<mx:Label text="{}">
</mx:Label>
</mx:TitleWindow>
Related contents
TECH
2010.01.22
Scalaスケーラブルプログラミング
TECH
2009.07.29
mixiで全文検索するプログラムをRubyで作ってみた
TECH
2009.07.17
ペアプログラミング
TECH
2009.07.12
cutとsortをパイプで繋げる
TECH
2009.06.22
シェルスプリクトのお勉強
TECH
2008.11.28
processingによる可視化
TECH
2008.10.12
施設引き継ぎ資料
TECH
2008.08.30
文系的IT業と理系的IT業