iOS-разработка с фреймворком Starling: сделайте снимок экрана и сохраните его в фотопленку

Я использую flash для разработки под ios и фреймворк starling. Я пытаюсь сделать снимок экрана, а затем сохранить его в фотопленку, но cameraRoll принимает только растровые данные. Как я собираюсь конвертировать спрайт в растровые данные? Бесконечно благодарен!!


person user867556    schedule 09.05.2012    source источник


Ответы (2)


Вы можете преобразовать Sprite в BitmapData с помощью BitmapData.draw() метод. здесь пример.

person Art    schedule 09.05.2012

На самом деле, вы не можете использовать отрисовку для спрайта скворца. этот код работает для меня:

public static function copyAsBitmapData(displayObject:DisplayObject, transparentBackground:Boolean = true, backgroundColor:uint = 0xcccccc):BitmapData
{
    if (displayObject == null || isNaN(displayObject.width)|| isNaN(displayObject.height))
        return null;
    var resultRect:Rectangle = new Rectangle();
    displayObject.getBounds(displayObject, resultRect);

    var result:BitmapData = new BitmapData(displayObject.width, displayObject.height, transparentBackground, backgroundColor);
    var context:Context3D = Starling.context;
    var support:RenderSupport = new RenderSupport();
    RenderSupport.clear();
    support.setOrthographicProjection(0, 0, Starling.current.stage.stageWidth, Starling.current.stage.stageHeight);
    support.applyBlendMode(true);
    support.translateMatrix( -resultRect.x, -resultRect.y);
    support.pushMatrix();
    support.blendMode = displayObject.blendMode;
    displayObject.render(support, 1.0);
    support.popMatrix();
    support.finishQuadBatch();
    context.drawToBitmapData(result);
    return result;
}
person Gui de Guinetik    schedule 02.07.2013