flash on 2009-6-21

by takawo
♥0 | Line 128 | Modified 2009-06-22 00:42:00 | MIT License
play

ActionScript3 source code

/**
 * Copyright takawo ( http://wonderfl.net/user/takawo )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/oYH3
 */

package {
    import flash.display.Stage;
    import flash.display.StageScaleMode;
    import flash.display.StageAlign;
    import flash.display.Sprite;
    import flash.events.Event;
    
    [SWF(backgroundColor = "#666666", frameRate="60")]
    public class LoadImage extends Sprite 
    {
        public function LoadImage() 
        {
         stage.align = StageAlign.TOP_LEFT;
         stage.scaleMode = StageScaleMode.NO_SCALE;
         
         _xmlLoader = new XMLLoader("http://ttttest.net/study/photo.xml");
         _xmlLoader.addEventListener(XMLLoader.LOAD_COMPLETE,onXMLLoaded);
            
        }
        private var _xmlLoader:XMLLoader;
        private var _photoXml:XML;
        private var _photoWidth:Number = 180;
        private var _photoHeight:Number = 120;
        
        private function onXMLLoaded(event:Event):void
        {   
            _photoXml = _xmlLoader.getXML();
            var i:int = 0;
            for each(var url:String in _photoXml.photoURL)
            {
                var img:ImageLoader = new ImageLoader(url,_photoWidth,_photoHeight);
                img.x = ( i % 3 ) * _photoWidth;
                img.y = int( i / 3 )* _photoHeight;
                addChild(img);
                i++;
            }
            
        }
        
    }
}
    
    import flash.events.EventDispatcher;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;
    import flash.system.System;
    import flash.events.Event;
    class XMLLoader extends EventDispatcher
    {
        public static const LOAD_COMPLETE:String = "load_complete";
        
        public function XMLLoader(url:String):void
        {
            _xmlLoader = new URLLoader();
            _xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
            _xmlLoader.addEventListener(Event.COMPLETE, onXMLLoaded);
            //
            var urlReq:URLRequest = new URLRequest(url);
            _xmlLoader.load(urlReq);
        }
        private var _my_xml:XML;
        private var _xmlLoader:URLLoader;
        public function getXML():XML
        {
            return _my_xml;
        }
        private function onXMLLoaded(event:Event):void
        {
            try
            {
                _my_xml = new XML(_xmlLoader.data);
                dispatchEvent(new Event(LOAD_COMPLETE));
                
            }
            catch(err:TypeError)
            {
                trace(err.message);
            }
        }
    }
    
    import flash.display.Sprite;
    import flash.display.Loader;
    import flash.display.LoaderInfo;
    import flash.net.URLRequest;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import flash.events.IOErrorEvent;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;
    
    class ImageLoader extends Sprite
    {
        public function ImageLoader(url:String,w:Number,h:Number)
        {
            _url = url;
            _width = w;
            _height = h;
            setupField();
            _imgLoader = new Loader();
            _info = _imgLoader.contentLoaderInfo;
            addChild(_imgLoader);
            _info.addEventListener(Event.COMPLETE,onCompleteHandler);
            _info.addEventListener(ProgressEvent.PROGRESS,onProgressHandler);
            _urlReq = new URLRequest(_url);
            _imgLoader.load(_urlReq);
        }
        private var _url:String;
        private var _width:Number;
        private var _height:Number;
        private var _imgLoader:Loader;
        private var _urlReq:URLRequest;
        private var _info:LoaderInfo;
        private var _perField:TextField;
        private function setupField():void
        {
            _perField = new TextField();
            _perField.x = 10;
            _perField.y = 10;
            _perField.autoSize = TextFieldAutoSize.LEFT;
            var textFormat:TextFormat = new TextFormat();
            textFormat.font ="Verdana";
            textFormat.size = 12;
            _perField.defaultTextFormat = textFormat;
            addChild(_perField)
           
        }
        private function onCompleteHandler(event:Event):void
        {
            _imgLoader.width = _width;
            _imgLoader.height = _height;
        
        }
        private function onProgressHandler(event:ProgressEvent):void
        {
                var per:Number = Math.round(event.bytesLoaded/event.bytesTotal * 100);
                _perField.text = per + "%";
        }
    }
    

Forked