Report abuse

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);