Advertisement
bitetti

XMind2Lua prototipo

Mar 21st, 2011
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.wildwitchproject.rpgframework.utils.xmind
  2. {
  3.     import flash.display.Bitmap;
  4.     import flash.display.BitmapData;
  5.     import flash.display.Loader;
  6.     import flash.events.ErrorEvent;
  7.     import flash.events.IOErrorEvent;
  8.     import flash.events.Event;
  9.     import flash.events.EventDispatcher;
  10.     import flash.net.URLLoader;
  11.     import flash.net.URLLoaderDataFormat;
  12.     import flash.net.URLRequest;
  13.     import flash.system.System;
  14.     import flash.utils.ByteArray;
  15.     import flash.utils.IDataInput;
  16.     import nochump.util.zip.ZipEntry;
  17.     import nochump.util.zip.ZipFile;
  18.    
  19.     //sistema
  20.     import com.wildwitchproject.rpgframework.logger.LogManager;
  21.    
  22.     /**
  23.      * ...
  24.      * @author Marcos Augusto Bitetti ( marcosbitetti@gmail.com )
  25.      *
  26.      * documento baseado na biblioteca
  27.      *    http://nochump.com/blog/archives/15
  28.      */
  29.     public class XMindParser extends EventDispatcher
  30.     {
  31.         private var _xml:XML;
  32.         private var internalLoader:URLLoader;
  33.        
  34.         private var zipFile:ZipFile;
  35.         private var thumbnail:Loader;
  36.        
  37.        
  38.         //mamespaces
  39.         private var xmind:Namespace = new Namespace("urn:xmind:xmap:xmlns:content:2.0");
  40.         private var fo:Namespace = new Namespace("http://www.w3.org/1999/XSL/Format");
  41.         private var svg:Namespace = new Namespace("http://www.w3.org/2000/svg");
  42.         private var xhtml:Namespace = new Namespace("http://www.w3.org/1999/xhtml");
  43.         private var xlink:Namespace = new Namespace("http://www.w3.org/1999/xlink");
  44.        
  45.        
  46.        
  47.         public function XMindParser()
  48.         {
  49.             addEventListener( ErrorEvent.ERROR, error );
  50.         }
  51.        
  52.        
  53.         public function parse( x:* ):void
  54.         {
  55.             if (x is XML)
  56.             {
  57.                 if (_xml==null)
  58.                     _xml = x as XML;
  59.             }
  60.             else
  61.                 _xml = new XML( x as String );
  62.            
  63.             var i:int;
  64.             LogManager.message = "Lendo XML:";
  65.            
  66.             default xml namespace = xmind;
  67.            
  68.             for each(var x:XML in _xml.sheet)
  69.             {
  70.                 LogManager.message = "Folha: " + x.title;
  71.                
  72.             }
  73.         }
  74.        
  75.         public function load( url:URLRequest ):void
  76.         {
  77.             try
  78.             {
  79.                 LogManager.message = "Iniciando o carregamento de: " + url.url;
  80.            
  81.                 internalLoader = new URLLoader();
  82.                 internalLoader.dataFormat = URLLoaderDataFormat.BINARY;
  83.                 internalLoader.addEventListener( Event.COMPLETE, loaderDone );
  84.                 internalLoader.addEventListener( IOErrorEvent.IO_ERROR, error );
  85.                
  86.                 internalLoader.load( url );
  87.             } catch (e:Error)
  88.             {
  89.                
  90.             }
  91.         }
  92.        
  93.         public function getThumb():Loader
  94.         {
  95.             return thumbnail as Loader;
  96.         }
  97.        
  98.         private function loaderDone( e:Event ):void
  99.         {
  100.             var data:IDataInput = internalLoader.data;// as ByteArray;
  101.            
  102.             zipFile = new ZipFile( data );
  103.            
  104.             internalLoader = null;
  105.             System.gc();
  106.            
  107.             LogManager.message = "Carga efetuada.";
  108.            
  109.             for (var i:int = 0; i < zipFile.entries.length; i++)
  110.             {
  111.                 var entry:ZipEntry = zipFile.entries[i];
  112.                 var dt:ByteArray;
  113.                 //trace(entry.name);
  114.                 switch( entry.name )
  115.                 {
  116.                     case "Thumbnails/thumbnail.jpg":
  117.                         LogManager.message = "Thumbnail carregado.";
  118.                         dt = zipFile.getInput(entry);
  119.                         thumbnail = new Loader();
  120.                         thumbnail.loadBytes(dt);
  121.                         break;
  122.  
  123.                     case "content.xml":
  124.                         LogManager.message = "Lendo XML";
  125.                         dt = zipFile.getInput(entry);
  126.                         _xml = new XML( dt.readMultiByte(dt.bytesAvailable, "UTF-8") );
  127.                         break;
  128.                 }
  129.             }
  130.             System.gc();
  131.            
  132.             this.parse( _xml );
  133.            
  134.             dispatchEvent( new Event(Event.COMPLETE) );
  135.         }
  136.        
  137.         private function error( e:ErrorEvent ):void
  138.         {
  139.             LogManager.message = e.type, e.text;
  140.         }
  141.        
  142.     }
  143.  
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement