2014-10-20 2 views
0

В настоящее время я работаю над приложением, где скриншот сцены генерируется как растровое изображение, а сгенерированное изображение затем добавляется на вкладку приложения.Утилизируйте текстуру в as3 Starling

Я не могу добавить более нескольких снимков экрана на вкладку. Приложение выдает исключение «Ошибка № 3691: Ограничение ресурса для этого типа ресурса превышено».

Я обнаружил, что это исключение выбрасывается из-за неправильной настройки текстуры. В приведенном ниже коде, Если я удаляю буферизованное изображение, изображение, добавленное на вкладку, пуст.

Ниже приведен код:

public function AddtoMediaTab():void 
{ 
    var buffer:BitmapData; 
    buffer = GetStageAsBitmapData(); 
    var bufferedTexture:Texture = Texture.fromBitmapData(buffer); 
    this.image.source = bufferedTexture; 
    buffer.dispose(); 
    buffer = null; 
    //bufferedTexture.dispose(); 
    //bufferedTexture = null; 
} 

public function GetAsBitmapData():BitmapData 
{ 
    var buffer:BitmapData = new BitmapData(this.width,this.height, false, 0x000000); 
    this.media.DrawToBitmap(buffer); 
    return buffer; 
} 

Любая помощь приветствуется.

Thanks

+1

, так что вы знаете, как распорядиться текстурой скворцом ... и ваш вопрос? – BotMaster

+0

Размер изображения, вероятно, слишком велик, насколько велика ваша сцена? Очевидно, что удаление из него удалит его, поэтому, конечно, изображение не появится. –

+0

@BennettYeates: Размер моей сцены 1920x1080. Есть ли способ уменьшить размер изображения, а затем сохранить его? – Sugan88

ответ

1

Вы можете попробовать изменить профиль рендеринга. Прямо из API документации Starling:

starling.core.Starling API

Context3D Профили

Stage3D поддерживает различные профили рендеринга, и Старлинг работает со всеми из них. Последний параметр конструктора Starling позволяет вам выбрать, какой профиль вы хотите. Следующие профили доступны:

  • BASELINE_CONSTRAINED: обеспечивает широчайший охват аппаратных средств. Если вы создали для браузера, это профиль, с которым вы должны протестировать.
  • BASELINE: рекомендуется для любого мобильного приложения, так как позволяет Starling использовать более эффективный тип текстуры памяти (RectangleTextures). Он также поддерживает более сложный код AGAL.
  • BASELINE_EXTENDED: добавлена ​​поддержка для текстур размером до 4096x4096 точек. Это особенно полезно на мобильных устройствах с очень высоким разрешением.

Рекомендация для развернуть приложение с профилем «авто» (что делает Старлинг выбрать лучший доступны из этих трех), но проверить его на всех доступных профилей.

Смежные вопросы