Actionscript 3 bitmapdata.draw的替代错误

Actionscript 3 bitmapdata.draw的替代错误,actionscript-3,flash,Actionscript 3,Flash,我得到一份工作 SecurityError:错误#2123:安全沙盒冲突: BitmapData.draw:file:///Users/.../project/bin-debug/Project.swf 无法访问rtmp://flash.project.com/project/. 没有策略文件 允许访问 这发生在这一行: temporaryBitmap = new BitmapData(FlexGlobals.topLevelApplication.stage.width, FlexGlobal

我得到一份工作

SecurityError:错误#2123:安全沙盒冲突: BitmapData.draw:file:///Users/.../project/bin-debug/Project.swf 无法访问rtmp://flash.project.com/project/. 没有策略文件 允许访问

这发生在这一行:

temporaryBitmap = new BitmapData(FlexGlobals.topLevelApplication.stage.width, FlexGlobals.topLevelApplication.stage.height, false);
temporaryBitmap.draw(DisplayObject(FlexGlobals.topLevelApplication.stage)); // this line
有没有办法避免这个错误?根据我所做的研究,它似乎与RTMP流权限有关。如果是这种情况,那么不显示流是可以的,因为我只是试图找到容器的尺寸。因此,如果有一种方法可以获取应用程序的快照,并显示视频流所在的黑匣子,也可以


我正在为开发人员创建一个通用工具,因此我不知道哪些内容会提前提供,哪些内容不会提前提供。我必须处理这两种情况。我可以想象,当从不同的域加载图像时,我将不得不处理这个问题

我找不到任何其他解决方案来判断它是否会出错,因此我将调用包装在一个try-catch块中,如下所示:

try {
    drawBitmapData(temporaryBitmap, DisplayObject(FlexGlobals.topLevelApplication));
}
catch (e:Error) {
    // could not draw so don't draw
}

// continue 
我必须将draw调用放在一个单独的调用中,以便它不抛出错误,而是跳到下一段代码:

public function drawBitmapData(bitmapData:BitmapData, displayObject:DisplayObject, matrix:Matrix = null):void {
    bitmapData.draw(displayObject, matrix);
}

为什么和在哪里叫rtmp://?这将是问题的根源。每当我必须流视频的时候。这可以在应用程序生命周期的任何时间点进行。我更希望找到一种方法提前知道draw调用是否会失败,或者它是否会失败,仍然会绘制它,但删除无法访问的内容。您是否在服务器上尝试了CrossDomain.xml和Security.allowDomain(rtmp://flash.project.com/project/)在Flash中?它允许我捕捉错误,但我无法截屏。