QuickBox2Dに画像を貼る

by Akiyah forked from forked from: QuickBox2Dとテキストと、、 (diff: 34)
Wonderflではリンケージクラスが使えないので
QuickBox2Dに画像を貼る時にはひと工夫必要らしい

参考:
・QuickBox2D Skinning Examples
http://actionsnippet.com/?p=2224
・QuickBox2Dとテキストと、、
http://wonderfl.net/c/dyVA
♥0 | Line 39 | Modified 2011-10-31 00:34:40 | MIT License | (replaced)
play

ActionScript3 source code

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

package 
{
    import flash.display.*;
    import flash.events.*;
    import flash.system.*;
    import flash.net.*;
    import flash.geom.*;
    import net.hires.debug.Stats;
    import com.actionsnippet.qbox.*;
    
    public class Main extends MovieClip {
        private var loader:Loader;

        Security.loadPolicyFile("http://assets.wonderfl.net/crossdomain.xml");
        private const path:String = "http://assets.wonderfl.net/images/related_images";
        private const filename1:String = path + "/e/ed/ed1c/ed1cadf0fdd830922653b0fa2a5667315bb85ef5";

        public function Main():void {
            loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, compHandler);
            loader.load(new URLRequest(filename1), new LoaderContext(true));
        }

        public function compHandler(e:Event):void {
            var g:Graphics;
            var bmd:BitmapData= new BitmapData(loader.width,loader.height);
            bmd.draw(loader);

            addChild(new Stats());
            var sim:QuickBox2D = new QuickBox2D(this, {debug:false});
            sim.createStageWalls();

            var box:QuickObject = sim.addBox({x:5, y:5, width:5, height:5});
            g = box.userData.graphics;
            g.beginBitmapFill(bmd, new Matrix(1,0,0,1,-5*30/2,-5*30/2));
            g.drawRect(-5*30/2,-5*30/2,5*30,5*30);

            var circle:QuickObject = sim.addCircle({x:4, y:8, radius:5/2});
            g = circle.userData.graphics;
            g.beginBitmapFill(bmd, new Matrix(1,0,0,1,-5*30/2,-5*30/2));
            g.drawCircle(0,0,5*30/2);

            sim.mouseDrag();
            sim.start();            
        }
    }
}