Thread: Mini Navigator
View Single Post

  #4 (permalink)  
Old 11-01-08, 06:48
Flep Flep is offline
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,352
Blog Entries: 1
Rep Power: 6
Flep is on a distinguished road
Re: Mini Navigator

Ciao

LoadingXML.as diventa così:
Code:
/*
 *************************************
 * Mini Navigator
 * http://www.FlepStudio.org         
 * © Author: Filippo Lughi           
 * version 1.0                       
 *************************************
 */
package org.flepstudio
{
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.xml.*;
	
	public class LoadingXML
	{
		private var _fla:MovieClip;
		
		public function LoadingXML(fla:MovieClip)
		{
			_fla=fla;
			this.loadXML();
		}
		
		private function loadXML():void
		{
			var loader:URLLoader=new URLLoader();
			loader.addEventListener(Event.COMPLETE,completeHandler);
			
			var request:URLRequest=new URLRequest('images.xml');
			try 
			{
				loader.load(request);
			} 
			catch(error:Error) 
			{
				trace('Impossibile caricare il documento.');
			}
		}
		
		private function completeHandler(event:Event):void
		{
			var result:XML=new XML(event.target.data);
			var myXML:XMLDocument=new XMLDocument();
			myXML.ignoreWhite=true;
			myXML.parseXML(result.toXMLString());
			var node:XMLNode=myXML.firstChild;
			var n:int=int(node.childNodes.length);
			for(var i:int=0;i < n;i++)
			{
				_fla.urls_array.push(node.childNodes[i].attributes['url']);
				_fla.paths_array.push(node.childNodes[i].firstChild.nodeValue);
			}
			
			_fla.loadImages();
		}
	}
}
ImageLoader.as diventa così:
Code:
/*
 *************************************
 * Mini Navigator
 * http://www.FlepStudio.org         
 * © Author: Filippo Lughi           
 * version 1.0                       
 *************************************
 */
package org.flepstudio
{
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.events.*;
	import flash.net.URLRequest;
	import flash.display.BitmapData;
	import flash.display.Bitmap;
	import flash.geom.Matrix;
	
	public class ImageLoader 
	{
		private var _fla:MovieClip;
		private var clip:MovieClip;
		
		private var id:int;
		
		private var loader:Loader;
		
		private var url_:String;
		
		public function ImageLoader(fla:MovieClip,url:String,n:int)
		{
			_fla=fla;
			url_=url;
			id=n;
			
			_fla.info_txt.text='LOADING IMAGES, PLEASE WAIT...'+'\n'+(id+1)+' / '+_fla.paths_array.length;
			
			init();
		}
		
		private function init():void 
		{
			var request:URLRequest=new URLRequest(url_);
			loader=new Loader();
			initListeners(loader.contentLoaderInfo);
			loader.load(request);
		}
		
		private function initListeners(dispatcher:IEventDispatcher):void 
		{
			dispatcher.addEventListener(Event.COMPLETE,completato);
		}
		
		private function completato(event:Event):void 
		{
			createThumb();
		}
		
		private function removeListeners(dispatcher:IEventDispatcher):void 
		{
			dispatcher.removeEventListener(Event.COMPLETE,completato);
		}
		
		private function createThumb():void
		{
			var thumb:Bitmap=loader.content as Bitmap;
			
			clip=new MovieClip();
			clip.id=id;
			clip.visible=false;
			clip.addChild(thumb);
			
			_fla.container_mc.addChild(clip);
			_fla.images_array.push(clip);
			
			clip.id=id;
			clip.name='pic_'+id;
			
			if(id<_fla.paths_array.length-1)
				_fla.loadImages();
			else
				_fla.positionClips();
		}
	}
}
Main.as diventa così:
Code:
/*
 *************************************
 * Mini Navigator
 * http://www.FlepStudio.org         
 * © Author: Filippo Lughi           
 * version 1.0                       
 *************************************
 */
package org.flepstudio
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.net.*;
	import flash.events.ContextMenuEvent;
	import flash.ui.ContextMenu;
	import flash.ui.ContextMenuItem;
	import caurina.transitions.Tweener;
	
	public class Main extends MovieClip
	{
		private var file_xml:LoadingXML;
		
		public var paths_array:Array=new Array();
		public var images_array:Array=new Array();
		private var clips_array:Array=new Array();
		public var urls_array:Array=new Array();
		
		public var container_mc:MovieClip;
		
		private var counter:int=0;
		private const ROW_COUNT:uint=15;
		
		public function Main()
		{
			addEventListener(Event.ADDED_TO_STAGE,init);
		}
		
		private function init(evt:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE,init);
			
			stage.frameRate=31;
			
			createContainer();
			loadXML();
			initMenu();
		}
		
		private function createContainer():void
		{
			container_mc=new MovieClip();
			addChild(container_mc);
		}
		
		private function loadXML():void
		{
			file_xml=new LoadingXML(this);
		}
		
		public function loadImages():void
		{
			var image_loader:ImageLoader=new ImageLoader(this,paths_array[counter],counter);
			counter++;
		}
		
		public function positionClips():void
		{
			removeChild(info_txt);
			
			for(var i:int=0;i < images_array.length;i++)
			{
				if(i>0)
					images_array[i].x=images_array[i-1].x+images_array[i-1].width;
			}
			
			createNavigation();
			viewClip(0);
		}
		
		private function createNavigation():void
		{
			for(var i:int=0;i
e il file XML diventa così:
HTML Code:
<?xml version="1.0" encoding="UTF-8"?>
<root>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_0.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_1.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_2.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_3.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_4.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_5.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_6.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_7.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_8.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_9.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_10.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_11.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_12.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_13.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_14.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_15.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_16.jpg</image>
	<image url="http://www.flepstudio.org/">http://www.flepstudio.org/utilita/MiniNavigator/images/pic_17.jpg</image>
</root>

Last edited by Flep; 12-01-08 at 06:22.
Reply With Quote