我目前正在开发一个应用程序,其中将舞台的屏幕截图生成为位图图像,然后将生成的图像添加到应用程序的选项卡中。
我无法在标签页中添加多个屏幕截图图片。应用程序抛出“错误#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;
}
感谢任何帮助。
由于
答案 0 :(得分:1)
您可以尝试更改渲染配置文件。直接来自Starling API文档:
Context3D个人资料
Stage3D支持不同的渲染配置文件,和 Starling与他们一起工作。 Starling的最后一个参数 构造函数允许您选择所需的配置文件。下列 个人资料可用:
- BASELINE_CONSTRAINED:提供最广泛的硬件覆盖范围。如果你 为浏览器开发,这是你应该测试的配置文件。
- BASELINE:推荐任何移动应用程序,因为它允许Starling 使用更高内存效率的纹理类型(RectangleTextures)。它 还支持更复杂的AGAL代码。
- BASELINE_EXTENDED:添加支持 纹理高达4096x4096像素。这对于特别有用 具有极高分辨率的移动设备。
建议是 使用配置文件“auto”部署您的应用程序(这使得Starling选择了 最好的三种),但在所有可用的配置文件中测试它。