別サーバの画像の扱いテスト

by yprops forked from テキスト表示用 (diff: 44)
♥0 | Line 65 | Modified 2011-03-17 02:51:29 | MIT License
play

ActionScript3 source code

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

// forked from yprops's テキスト表示用
package
{
    import flash.display.*;
    import flash.events.*;
    import flash.geom.*;
    import flash.net.*;
    import flash.text.*;
    import flash.system.*;
    
    public class DebugText extends Sprite
    {
        
        
        //------------main-----------------------
        
        
        private var imgurl :String = "http://yprops.com/images/icon_postboyalpha.jpg";
        private var ld :Loader;
        private var req :URLRequest;
        private var info :LoaderInfo;
        private var lc :LoaderContext;
        public function main() :void{
            addDebLine("別サーバの画像取得について");
            addDebLine("ポリシーファイルにアクセスできない時の扱いの基本");
            addDebLine("addChild(loader.content) するとエラー。addChild(loader) とする");
            addDebLine("BitmapData.draw(loader) でエラー。");
            addDebLine("加工できないお客さんとして扱う。");
            
            ld = new Loader();
            req = new URLRequest(imgurl);
            info = ld.contentLoaderInfo;
            info.addEventListener(Event.COMPLETE, onLoad);
            
            //LoaderContext は、取得先のポリシーファイルを読めるなら関係ある?読めないなら関係ない
            //lc = new LoaderContext(true);
            
            ld.load(req);
        }
        private function onLoad(ev:Event) :void{
            ld.x = Math.random() * 100 + 100;
            ld.y = Math.random() * 100 + 100;
            
            //addCihld(ld.content) や addChild(info.content) とやるとエラー。
            addChild(ld);
            
            var bd :BitmapData = new BitmapData(200, 100, false, 0x660000);
            var bmp :Bitmap = new Bitmap(bd);
            bmp.x = 150;
            bmp.y = 300;
            addChild(bmp);
            
            //BitmapDataに描こうとするとエラー。
            //bd.draw(ld);
            
            //親をBitmapDataに描こうとしてもエラー。
            //bd.draw(this, new Matrix(1,0,0,1,ld.x,ld.y));
        }

        
        
        
        //------------general---------------------
        public function DebugText(){
            if(stage)init();
            addEventListener(Event.ADDED_TO_STAGE, init);
        }
        private function init(ev:Event = null) :void{
            removeEventListener(Event.ADDED_TO_STAGE, init);
            addDeb(450, 450);
            main();
        }
        private var deb :TextField;
        private function addDeb(w:uint, h:uint) :void{
                deb = new TextField();
                deb.wordWrap = true;
                deb.width = w;
                deb.height = h;
                deb.border = true;
                deb.borderColor = 0;
                deb.background = true;
                deb.backgroundColor = 0x99ffffff;
                deb.text = "beginDebugText-------\n\n";
                addChild(deb);
        }
        private function addDebLine(...args) :void{
                deb.appendText(args.join(" ") + "\n");
                deb.scrollV = deb.maxScrollV;
        }
    }
}