【问题标题】:AIR- Stage3D to bitmapDataAIR-Stage3D 到 bitmapData
【发布时间】:2014-03-01 13:14:09
【问题描述】:

我有一个使用 Stage3D 创建的基于 AIR 的游戏。我需要将我的 Stage3D 图层的一部分捕获或绘制到显示列表上的位图,但由于 Stage3D 图层存在于显示列表后面并且完全在显示列表之外,因此不知道如何执行此操作。

【问题讨论】:

    标签: actionscript-3 bitmap air bitmapdata stage3d


    【解决方案1】:

    查看drawToBitmapData()http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display3D/Context3D.html#drawToBitmapData()Camera 上也有一个),这看起来就是你想要的。

    如果您使用 Starling,您可以这样做:

    阶段:

    public static function takeScreenshot(scl:Number=1.0):BitmapData
    {
        var stage:Stage= Starling.current.stage;
        var width:Number = stage.stageWidth;
        var height:Number = stage.stageHeight;
    
        var rs:RenderSupport = new RenderSupport();
    
        rs.clear(stage.color, 1.0);
        rs.scaleMatrix(scl, scl);
        rs.setOrthographicProjection(0, 0, width, height);
    
        stage.render(rs, 1.0);
        rs.finishQuadBatch();
    
        var outBmp:BitmapData = new BitmapData(width*scl, height*scl, true);
        Starling.context.drawToBitmapData(outBmp);
    
        return outBmp;
    }
    

    显示对象:

    public static function copyToBitmap(disp:DisplayObject, scl:Number=1.0):BitmapData
    {
        var rc:Rectangle = new Rectangle();
        disp.getBounds(disp, rc);
    
        var stage:Stage= Starling.current.stage;
        var rs:RenderSupport = new RenderSupport();
    
        rs.clear();
        rs.scaleMatrix(scl, scl);
        rs.setOrthographicProjection(0, 0, stage.stageWidth, stage.stageHeight);
        rs.translateMatrix(-rc.x, -rc.y); // move to 0,0
        disp.render(rs, 1.0);
        rs.finishQuadBatch();
    
        var outBmp:BitmapData = new BitmapData(rc.width*scl, rc.height*scl, true);
        Starling.context.drawToBitmapData(outBmp);
    
        return outBmp;
    }
    

    来源:http://blog.flexwiz.net/tip-how-to-take-a-screenshot-in-starling/

    【讨论】:

      猜你喜欢
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      相关资源
      最近更新 更多