Actionscript 3 bitmapdata.draw的替代错误
我得到一份工作 SecurityError:错误#2123:安全沙盒冲突: BitmapData.draw:file:///Users/.../project/bin-debug/Project.swf 无法访问rtmp://flash.project.com/project/. 没有策略文件 允许访问 这发生在这一行: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
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中?它允许我捕捉错误,但我无法截屏。