= directions.length) direction = 0; CubeRotate(f).direction = directions[direction] CubeRotate(f).blur = BLUR_FILTER; } f.duration = EFFECT_DURATION; f.play(); f.addEventListener(EffectEvent.EFFECT_END, onEffectEnd); } /** * Image effect display finished * go to the next image */ private function onEffectEnd(e:EffectEvent):void { if(e.target is CubeRotate) { container.removeChild(DisplayObject(CubeRotate(e.target).target)) container.addChild(DisplayObject(CubeRotate(e.target).siblings[0])) } next(); } /** * Initialize application */ private function init():void { _flickr = new FlickrService(API); //_flickr.addEventListener(FlickrResultEvent.PEOPLE_GET_PUBLIC_PHOTOS, handleEvent); _flickr.addEventListener(FlickrResultEvent.PHOTOS_SEARCH, handleEvent); _flickr.addEventListener(FlickrResultEvent.PHOTOS_GET_CONTEXT, handleEvent); _flickr.addEventListener(FlickrResultEvent.PHOTOS_GET_INFO, handleEvent); _timer = new Timer(PAUSE, 1); _timer.addEventListener(TimerEvent.TIMER, onTimerStep); _timer.stop(); //var h:Number = systemManager.stage.stageHeight; //var w:Number = systemManager.stage.stageWidth; //container.scaleX = 0.8 * w/150; //container.scaleY = 0.8 * w/150; first(); } private var count:Number = 0; private function onTimerStep(e:TimerEvent):void { count++; current = _next_photo; title = _current.title; description = _current.description; //_tags.text = "[" + count + "] " + tags; _title.text = _current.title; //_desc.text = _current.description; status.text ="[" + count + "]"; // + tags; var h:Number = systemManager.stage.stageHeight; var w:Number = systemManager.stage.stageWidth; var x:Number = 0.8 * h/150; var y:Number = 0.8 * w/150; var s:Number = Math.min(x,y); container.scaleX = s; container.scaleY = s; } private var plist:PagedPhotoList; private function handleEvent(e:Event):void { var tmp_photo:Photo; if(e.type == FlickrResultEvent.PEOPLE_GET_PUBLIC_PHOTOS) { plist = PagedPhotoList(FlickrResultEvent(e).data.photos); if(plist.photos.length > 0) { current = plist.photos[0]; } } else if(e.type == FlickrResultEvent.PHOTOS_SEARCH) { plist = PagedPhotoList(FlickrResultEvent(e).data.photos); if(plist.photos.length > 0) { current = plist.photos[0]; } } else if(e.type == FlickrResultEvent.PHOTOS_GET_CONTEXT) { var context:Array = FlickrResultEvent(e).data.context; if(order == 0) { currentIndex++; if(Photo(context[0]).id == '0' || currentIndex >= TOTAL_IMAGES) { order = 1 } } if(order == 1) { if(Photo(context[1]).id == '0') { order = 0 currentIndex = 1; } } tmp_photo = Photo(context[order]); if(tmp_photo.id != "0") { _flickr.photos.getInfo(tmp_photo.id, tmp_photo.secret); } } else if(e.type == FlickrResultEvent.PHOTOS_GET_INFO) { _next_photo = Photo(FlickrResultEvent(e).data.photo); if(_timer.running) _timer.stop(); _timer.start(); } } /** * Load the First Image */ private function first():void { //var tags:String = "creative technology"; //_flickr.people.getPublicPhotos(NSID, "", 1, 1); _flickr.photos.search( "", tags ); } /** * Load the next image */ private function next():void { _flickr.photos.getContext(current.id); } /** * Get the photo source path */ private function getPhotoURI(p:Photo):String { // Wee need a php wrapper page for reading the image contents, otherwise every bitmapdata // based effect will fail on images loaded from external domains //return "http://localhost/media/actionscript-extra-flickr-read.php?file=http://static.flickr.com/" + p.server + "/" + p.id +"_" + p.secret + "_m.jpg"; //return "http://static.flickr.com/" + p.server + "/" + p.id +"_" + p.secret + "_m.jpg"; //return "actionscript-extra-flickr-read.php?file=http://static.flickr.com/" + p.server + "/" + p.id +"_" + p.secret + "_m.jpg"; //title = p.title; description = p.description; return "actionscript-extra-flickr-read.php?file=http://static.flickr.com/" + p.server + "/" + p.id +"_" + p.secret + "_m.jpg"; } private function set current(p:Photo):void { _current = p; loadNext(); } private function get current():Photo { return _current; } private function select( e:Event ) : void { tags = e.target.text; _timer.stop(); init(); //first(); } ]]>