Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.wildwitchproject.rpgframework.utils.xmind
- {
- import flash.display.Bitmap;
- import flash.display.BitmapData;
- import flash.display.Loader;
- import flash.events.ErrorEvent;
- import flash.events.IOErrorEvent;
- import flash.events.Event;
- import flash.events.EventDispatcher;
- import flash.net.URLLoader;
- import flash.net.URLLoaderDataFormat;
- import flash.net.URLRequest;
- import flash.system.System;
- import flash.utils.ByteArray;
- import flash.utils.IDataInput;
- import nochump.util.zip.ZipEntry;
- import nochump.util.zip.ZipFile;
- //sistema
- import com.wildwitchproject.rpgframework.logger.LogManager;
- /**
- * ...
- * @author Marcos Augusto Bitetti ( marcosbitetti@gmail.com )
- *
- * documento baseado na biblioteca
- * http://nochump.com/blog/archives/15
- */
- public class XMindParser extends EventDispatcher
- {
- private var _xml:XML;
- private var internalLoader:URLLoader;
- private var zipFile:ZipFile;
- private var thumbnail:Loader;
- //mamespaces
- private var xmind:Namespace = new Namespace("urn:xmind:xmap:xmlns:content:2.0");
- private var fo:Namespace = new Namespace("http://www.w3.org/1999/XSL/Format");
- private var svg:Namespace = new Namespace("http://www.w3.org/2000/svg");
- private var xhtml:Namespace = new Namespace("http://www.w3.org/1999/xhtml");
- private var xlink:Namespace = new Namespace("http://www.w3.org/1999/xlink");
- public function XMindParser()
- {
- addEventListener( ErrorEvent.ERROR, error );
- }
- public function parse( x:* ):void
- {
- if (x is XML)
- {
- if (_xml==null)
- _xml = x as XML;
- }
- else
- _xml = new XML( x as String );
- var i:int;
- LogManager.message = "Lendo XML:";
- default xml namespace = xmind;
- for each(var x:XML in _xml.sheet)
- {
- LogManager.message = "Folha: " + x.title;
- }
- }
- public function load( url:URLRequest ):void
- {
- try
- {
- LogManager.message = "Iniciando o carregamento de: " + url.url;
- internalLoader = new URLLoader();
- internalLoader.dataFormat = URLLoaderDataFormat.BINARY;
- internalLoader.addEventListener( Event.COMPLETE, loaderDone );
- internalLoader.addEventListener( IOErrorEvent.IO_ERROR, error );
- internalLoader.load( url );
- } catch (e:Error)
- {
- }
- }
- public function getThumb():Loader
- {
- return thumbnail as Loader;
- }
- private function loaderDone( e:Event ):void
- {
- var data:IDataInput = internalLoader.data;// as ByteArray;
- zipFile = new ZipFile( data );
- internalLoader = null;
- System.gc();
- LogManager.message = "Carga efetuada.";
- for (var i:int = 0; i < zipFile.entries.length; i++)
- {
- var entry:ZipEntry = zipFile.entries[i];
- var dt:ByteArray;
- //trace(entry.name);
- switch( entry.name )
- {
- case "Thumbnails/thumbnail.jpg":
- LogManager.message = "Thumbnail carregado.";
- dt = zipFile.getInput(entry);
- thumbnail = new Loader();
- thumbnail.loadBytes(dt);
- break;
- case "content.xml":
- LogManager.message = "Lendo XML";
- dt = zipFile.getInput(entry);
- _xml = new XML( dt.readMultiByte(dt.bytesAvailable, "UTF-8") );
- break;
- }
- }
- System.gc();
- this.parse( _xml );
- dispatchEvent( new Event(Event.COMPLETE) );
- }
- private function error( e:ErrorEvent ):void
- {
- LogManager.message = e.type, e.text;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement