2014-10-20 96 views
0

我目前正在開發一個應用程序,在該應用程序中將舞臺的屏幕截圖生成爲位圖圖像,然後將生成的圖像添加到應用程序的選項卡中。在as3中配置紋理Starling

我無法添加超過幾個截圖圖像到選項卡。應用程序拋出「錯誤#3691:超出此資源類型的資源限制」異常。

我發現這個異常是由於紋理未正確放置而引發的。 在下面的代碼中,如果我處理bufferedTexture,添加到選項卡的圖像是空的。

下面是代碼:

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; 
} 

任何幫助表示讚賞。

謝謝

+1

所以你知道如何處理與椋鳥紋理...你的問題是? – BotMaster 2014-10-20 16:27:13

+0

圖像的大小可能太大,舞臺有多大?很明顯,處理它會刪除它,所以當然圖像不會出現。 – 2014-10-20 20:01:41

+0

@ BennettYeates:我的舞臺大小是1920x1080。有什麼辦法可以縮小圖像的大小然後保存嗎? – Sugan88 2014-10-21 07:53:21

回答

1

您可以嘗試更改渲染配置文件。直接從德裕API文檔:

starling.core.Starling API

的Context3D配置文件

的Stage3D支持不同的渲染配置文件, 椋鳥可與所有的人。 Starling 構造函數的最後一個參數允許您選擇想要的配置文件。以下 配置可供:

  • BASELINE_CONSTRAINED:提供最廣泛的硬件範圍。如果您爲瀏覽器開發 ,這是您應該測試的配置文件。
  • BASELINE:推薦用於任何移動應用程序,因爲它允許Starling 使用更高效的內存紋理類型(RectangleTextures)。它 也支持更復雜的AGAL代碼。
  • BASELINE_EXTENDED:爲紋理增加支持 高達4096x4096像素。這對於分辨率非常高的移動設備 特別有用。

的建議是 部署與配置文件「自動」(這使得八哥挑 最好的那些三)你的應用程序,但在所有可用的配置文件進行測試。