画像ロードテスト

by uwi
♥0 | Line 53 | Modified 2010-10-03 05:06:18 | MIT License
play

ActionScript3 source code

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

package {
    import flash.text.TextField;
    import flash.system.*;
    import flash.net.*;
    import flash.display.*;
    import jp.progression.commands.lists.*;
    import jp.progression.commands.net.*;

    public class Test extends Sprite {
        private var _tf : TextField;
        private const FEEDURL : String = "http://api.flickr.com/services/feeds/photos_public.gne?tags=" + encodeURIComponent("巫女");

        public function Test() {
            _tf = new TextField();
            _tf.width = 465;
            _tf.height = 465;
            addChild(_tf);

            Security.loadPolicyFile("http://farm5.static.flickr.com/crossdomain.xml");
            
            var lu : LoadCommand = new LoadURL(new URLRequest(FEEDURL), {
                onComplete : function() : void {
                    var feed : XML = XML(lu.data);
                    var ns : Namespace = feed.namespace();
                    var cs : Array = [];
                    var ll : ParallelList = new ParallelList({
                        onUpdate : function() : void {
                            tr(ll.count / ll.total);
                        },
                        onComplete : function() : void {
                            for each(var c : LoadCommand in cs){
                                var bmp : Bitmap = new Bitmap(c.data);
                                bmp.x = Math.random() * 300;
                                bmp.y = Math.random() * 300;
                                bmp.alpha = 0.5;
                                addChild(bmp);
                                c.dispose();
                            }
                        }
                    });
                    for each(var content : XML in feed..ns::content){
                        var url : String = content.text().match(/http:\/\/farm\d\.static\.flickr\.com\/\d*\/\d*_[\da-f]*_m.jpg/)[0];
                        // なぜここにonCompleteを仕込むと失敗する?
                        var lbmd : LoadCommand = new LoadBitmapData(new URLRequest(url));
                        ll.addCommand(lbmd);
                        cs.push(lbmd);
                    }
                    ll.execute();
                }
            });
            lu.execute();
        }

        private function tr(...o : Array) : void
        {
            _tf.appendText(o + "\n");
        }
    }
}