【问题标题】:Flex 3.4 - imageSnapshot question, linking images~Flex 3.4 - imageSnapshot 问题,链接图片~
【发布时间】:2009-10-08 21:06:54
【问题描述】:

在早些时候在这里得到了一些可爱的帮助之后,我几乎完成了我正在进行的项目。我以为我已经完成了,但我走了,遇到了最后一个问题。我的程序对我的文件的最终输出进行了截图,我的文件的最终输出中包含一些来自 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);

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

【问题讨论】:

    标签: apache-flex image save


    【解决方案1】:

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

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

    您的文件有一些来自内部 URL 的链接图像。显然这是不允许的。查看Security.allowDomain 以了解可能的解决方法。如果你有外部图片these rules也可以申请。

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

    【讨论】:

    • 这完全正确。从 Flex 3.5 开始,这也会引发 SecurityError 异常。我正在尝试截取基于 GoogleMaps 的应用程序的屏幕截图,并且遇到了同样的问题,我尝试解决将错误电子邮件发送到我的收件箱(带屏幕截图)的问题。
    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多