package{ import com.adobe.serialization.json.JSON; import com.adobe.utils.StringUtil; import com.gs.TweenLite; import com.joekromer.Navigate; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.MovieClip; import flash.display.Stage; import flash.events.ErrorEvent; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.events.TimerEvent; import flash.net.URLLoader; import flash.net.URLRequest; import flash.utils.Timer; public class TwitView extends MovieClip{ private var searchString:String = "twitpic.com+filter%3Alinks"; private var twitterURL:String = "http://search.twitter.com/search.json?q=" + searchString + "&rpp=100" private var timeBetweenLoads:int = 5; private var picIdArray:Array = new Array(); private var clipHolder:MovieClip; public function TwitView(){ clipHolder = clip.content; intro.contBtn.addEventListener(MouseEvent.CLICK, init); } private function init(e:MouseEvent):void{ var mc:MovieClip = MovieClip(e.target.parent); TweenLite.to(mc, .5, {alpha:0, onComplete:removeClip, onCompleteParams:[mc]}); loadInData(twitterURL); var updateEvery:Timer = new Timer(1000); updateEvery.addEventListener(TimerEvent.TIMER, countDown); updateEvery.start(); } private function removeClip(mc:MovieClip):void{ mc.parent.removeChild(mc) mc = null; } private function countDown(e:TimerEvent):void{ var timeCount:int = e.target.currentCount; if (timeCount % timeBetweenLoads == 0){ statusTxt.text = "status: looking for more photos"; loadInData(twitterURL); }else{ timeTxt.text = "look for more in - " + String(4 - (timeCount % timeBetweenLoads)); } } private function loadInData(s:String):void{ statusTxt.text = "status: searching twitter"; var url:URLRequest = new URLRequest(s); var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, searchLoaded); loader.addEventListener(ErrorEvent.ERROR, searchError); loader.load(url); } private function searchError(e:ErrorEvent):void{ statusTxt.text = "status: a search error occured"; trace("there was an error \n" + e) } private function searchLoaded(e:Event):void{ statusTxt.text = "status: search loaded sucess, parsing data"; var cleanData:String = cleanUpData(e.target.data); var dataArray:Array = JSON.decode(cleanData) as Array; for(var i:int = 0; i 9){ column = 0; row++; } imgClip.x = column*imgClip.width; imgClip.y = row*imgClip.height; clipHolder.addChild(imgClip); TweenLite.from(imgClip, .5, {alpha:0}); column++; } private function error(e:IOErrorEvent):void{ statusTxt.text = "status: a photo didn't load"; trace("something really bad happened " + e); } private function imgClicked(e:MouseEvent):void{ var imgID:String = e.target.name; Navigate.to("http://twitpic.com/"+imgID, "_blank"); } } }