Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
##separate class file private var xmlLoader:URLLoader = new URLLoader(); private var xmlData:XML = new XML(); //====================================================================================== public function initXML(e:Event) { //====================================================================================== var target:String = e.target.name; if (e.target.name == "recent_projects" || e.target.name == "whoweare") { xmlLoader.addEventListener(Event.COMPLETE, onCompleteXML); xmlLoader.load(new URLRequest("http://www.gessnerengineering.com/projects")); } else if (e.target.name == "our_staff") { xmlLoader.addEventListener(Event.COMPLETE, onCompleteXML); xmlLoader.load(new URLRequest("http://www.gessnerengineering.com/profiles")); } //======================================================================== function onCompleteXML(e:Event):void { //======================================================================== removeAll(); xmlData = new XML(e.target.data); makePagination(); trace("onCompleteXML() target: " + target); if (target == "recent_projects" || target == "whoweare") { trace("loadProjectXML() got called from onCompleteXML();"); loadProjectsXML(0, xmlData); } else if (target == "our_staff") { loadStaffXML(0, xmlData); } } //======================================================================== function makePagination():void { //======================================================================== var pages:Number; trace("makePagination() target: " + target); if (target == "recent_projects" || target == "whoweare") { pages = Math.ceil(xmlData.project.length() / 13); } else if (target == "our_staff") { pages = Math.ceil(xmlData.profile.length() / 13); } for (var i:Number = 0; i < pages; i++) { var tmp:pageNum = new pageNum(); var startX:Number = -(((pages * 50) - 10) / 2); tmp.Id = i * 13; tmp.x = startX; startX += 50; tmp.y = 0; tmp.label.text = String(i+1); tmp.buttonMode = true; tmp.mouseChildren = false; tmp.useHandCursor = true; tmp.addEventListener(MouseEvent.CLICK, onChangePage); Gessner(root).pages.whoweare_bkg.pagination.addChild(tmp); paginationButtons.push(Gessner(root).pages.whoweare_bkg.pagination.getChildByName(tmp.name)); } } //======================================================================== function onChangePage (e:MouseEvent):void { //======================================================================== if (target == "recent_projects" || target == "whoweare") { trace("loadProjectXML() got called from onChangePage();"); loadProjectsXML(e.currentTarget.Id as Number, xmlData); } else { loadStaffXML(e.currentTarget.Id as Number, xmlData); } } } //====================================================================================== public function loadProjectsXML(startNum:Number, xmlData:XML):void { //====================================================================================== removeAll(); var index:int = 1; var endNum:Number = startNum + 13; if (endNum > xmlData.project.length()) { endNum = xmlData.project.length(); trace("projectENDNUM" + endNum); } for(startNum; startNum < endNum; startNum++) { var instance:String = "cont" + index; var imageURL:String = "http://www.gessnerengineering.com/system/files/" + xmlData.project[startNum].assets.asset[0]["id"] + "/thumb/" + xmlData.project[startNum].assets.asset[0]["file-file-name"]; loadImage(imageURL, instance); Gessner(root).pages.whoweare_bkg[instance].title.text = xmlData.project[startNum].name; Gessner(root).pages.whoweare_bkg[instance].description.text = xmlData.project[startNum].description; instances.push(instance); index++; } } //======================================================================================= public function loadStaffXML(startNum:Number, xmlData:XML):void { //======================================================================================= removeAll(); var index:int = 1; var endNum:Number = startNum + 13; if (endNum > xmlData.profile.length()) { endNum = xmlData.profile.length(); ////trace("endNUM" + endNum); } for(startNum; startNum < endNum; startNum++) { var instance:String = "cont" + index; var imageURL:String = "http://www.gessnerengineering.com/system/avatars/" + xmlData.profile[startNum]["id"] + "/thumb/" + xmlData.profile[startNum]["avatar-file-name"]; loadImage(imageURL, instance); Gessner(root).pages.whoweare_bkg[instance].title.text = xmlData.profile[startNum]["user-id"]; Gessner(root).pages.whoweare_bkg[instance].description.text = xmlData.profile[startNum]["bio"]; instances.push(instance); index++; } } //======================================================================================= private function loadImage(imageURL:String, instance:String):void { //======================================================================================= var imageLoader:Loader = new Loader(); var imageRequest = new URLRequest(imageURL); imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); imageLoader.load(imageRequest); function onComplete(e:Event) { var image:Bitmap = (Bitmap)(e.target.content); Gessner(root).pages.whoweare_bkg[instance].thumb.addChild(image); images.push(Gessner(root).pages.whoweare_bkg[instance].thumb.getChildByName(image.name)); imageInstances.push(instance); //imageLoader.unload(); } } //======================================================================================= private function removeAll():void { //======================================================================================= var lengthOfIndex:uint = instances.length; /*for each(var button:DisplayObject in paginationButtons) { Gessner(root).pages.whoweare_bkg.pagination.removeChild(button); }*/ for (var i:uint = 0; i < lengthOfIndex; i++) { Gessner(root).pages.whoweare_bkg[instances[i]]["title"].text = ""; Gessner(root).pages.whoweare_bkg[instances[i]]["description"].text = ""; try { Gessner(root).pages.whoweare_bkg[imageInstances[i]].thumb.removeChild(images[i]); } catch (ArgumentError) { //trace("error: " + images[i].name + "::" + instances[i]); } } paginationButtons.splice(0, paginationButtons.length); images.splice(0, lengthOfIndex); imageInstances.splice(0, lengthOfIndex); instances.splice(0, lengthOfIndex); } } ##swf file's timeline actions this.pages.whoweare_bkg.recent_projects.addEventListener(MouseEvent.CLICK, initXML); this.pages.whoweare_bkg.our_staff.addEventListener(MouseEvent.CLICK, initXML); this.whoweare.addEventListener(MouseEvent.CLICK, initXML);
This paste will be private.
From the Design Piracy series on my blog: