在as3 Starling中处理纹理

时间:2014-10-20 15:23:32

标签: flex air starling-framework actionscript-3

我目前正在开发一个应用程序,其中将舞台的屏幕截图生成为位图图像,然后将生成的图像添加到应用程序的选项卡中。

我无法在标签页中添加多个屏幕截图图片。应用程序抛出“错误#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 个答案:

答案 0 :(得分:1)

您可以尝试更改渲染配置文件。直接来自Starling API文档:

starling.core.Starling API

  

Context3D个人资料

     

Stage3D支持不同的渲染配置文件,和   Starling与他们一起工作。 Starling的最后一个参数   构造函数允许您选择所需的配置文件。下列   个人资料可用:

     
      
  • BASELINE_CONSTRAINED:提供最广泛的硬件覆盖范围。如果你   为浏览器开发,这是你应该测试的配置文件。
  •   
  • BASELINE:推荐任何移动应用程序,因为它允许Starling   使用更高内存效率的纹理类型(RectangleTextures)。它   还支持更复杂的AGAL代码。
  •   
  • BASELINE_EXTENDED:添加支持   纹理高达4096x4096像素。这对于特别有用   具有极高分辨率的移动设备。
  •   
     

建议是   使用配置文件“auto”部署您的应用程序(这使得Starling选择了   最好的三种),但在所有可用的配置文件中测试它。