0

在早些时候在这里得到一些可爱的帮助后,我几乎完成了我正在做的项目。我以为我已经完成了,但我走了,遇到了最后一个问题。我的程序对我的文件的最终输出进行了截图,我的文件的最终输出中包含一些来自 URL 的链接图像。现在,当排除图像时,它保存得很好,但是当我从网址加载图像时,它似乎不允许我的 imageSnapShot 工作。

private function takeSnapshot(even:Event=null):void {

    var imageSnap:ImageSnapshot = ImageSnapshot.captureImage(previewMode);
    var MyFile:FileReference = new FileReference();

    MyFile.save(imageSnap.data, 'profile.png');


 }

其中“previewMode”是我获取(视图堆栈)的屏幕转储的组件,其中有一些来自网站的链接图像。

通过一些测试,它似乎停止了-

var imageSnap:ImageSnapshot = ImageSnapshot.captureImage(previewMode);

所以它实际上并没有得到输出的图像。任何帮助将不胜感激,到目前为止,你们都很棒。

4

1 回答 1

1

ImageSnapshot.captureImage可能正在使用该BitmapData.draw()方法拍摄快照。此方法的livedocs页面说:

源对象和(在 Sprite 或 MovieClip 对象的情况下)其所有子对象必须来自与调用者相同的域,或者必须位于调用者可通过调用 Security.allowDomain 访问的 SWF 文件中() 方法。如果不满足这些条件,则 draw() 方法不会绘制任何内容。

您的文件中包含一些来自 URL 的链接图像。显然这是不允许的。查看Security.allowDomain以了解可能的解决方法。如果您有外部图像,这些规则也适用。

如果从用于加载图像的 Loader 对象以外的域加载 Bitmap 对象,并且没有跨域策略文件允许访问 Loader 对象的域,则该域中的脚本无法访问Bitmap 对象或其属性和方法。

于 2009-10-08T13:06:54.080 回答