0

我正在尝试平滑从另一个网站加载的缩放图像。图像没有动画。如果我使用本地图像效果很好。但它似乎不适用于从远程服务器加载的图像。

这是片段:

    ...

    //_loader.load(new URLRequest(http://img.example.com/remote.jpg));
    _loader.load(new URLRequest("../assets/local.jpg"));
    _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);

    ...

protected function completeHandler(event:Event):void
{
    var image:Bitmap = Bitmap(event.target.content);
    image.smoothing = true;
    image.pixelSnapping = "never";
}

经测试,当我加载 local.jpg 时,它运行良好。但是当我从服务器加载 remote.jpg 时,平滑参数不起作用。

有谁知道为什么?我到处搜索,但没有人有同样的问题。我没有使用 Flash Professional,它是在 Flash Builder 中构建的纯 ActionScript 项目。并且图像没有动画。这么有线...

4

2 回答 2

2

因为您是从远程服务器拉取图像,所以需要在保存图像的 Web 服务器上设置跨域策略 xml 文件。

没有这个,您将无法在亚像素级别更改位图。

示例: http ://www.senocular.com/pub/adobe/crossdomain/policyfiles.html

更多详细信息 http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.edu.html

于 2013-01-23T10:16:27.740 回答
0

一天天的搜索,终于找到了答案:

    _loader.load( new URLRequest("http:…." , new LoaderContext(true));

最重要的是 load() 方法的第二个参数,它是一个 LoaderContext。参考: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#load()

虽然我在服务器中设置了跨域文件,但没有“new LoaderContext(true)”,它不会读取跨域文件。这就是为什么它一开始不起作用的原因。

如果你有同样的问题,希望对你有帮助!

于 2013-02-04T09:51:58.647 回答