Actionscript 2.0,BitmapData和Local vs Remote图像

时间:2012-02-27 15:02:36

标签: php database flash security actionscript-2

Stackoverflow早安正义联盟,

我这里有一个问题,可能会让小组失意。

我正在为即将举行的活动创建一个交互式帖子,允许我们使用sql数据库并发布推文,调查答案和图像。我们已经开始使用Twitter API和调查,所以这些都是A-OK。

问题在于从本地交互式主板服务器以外的位置加载图像。

如果图像本身是本地托管的,它加载就好了。 如果图像托管在其他地方,即使我对所述图像的URL有跟踪,也不会加载图像。

我正在通过XML加载加载所有推文,调查和图像,并且所有数据都正确加载。

我是通过平滑滤镜加载图像,这样当“后置”稍微旋转时,它们就不会出现锯齿状。这是代码:

import flash.display.*;

var srcImg = _parent._parent.varContent;
urlText.text = srcImg;
var mainHolder = this.createEmptyMovieClip("main", this.getNextHighestDepth());
var original = mainHolder.createEmptyMovieClip("original", mainHolder.getNextHighestDepth());
var smooth = mainHolder.createEmptyMovieClip("smooth", mainHolder.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadInit = function() {
    var w = original._width;
    var h = original._height;
    var bmpData1:BitmapData = new BitmapData(w, h, true, 0x000000);//true and 0 color allows for transparency
    bmpData1.draw(original);
    smooth.attachBitmap(bmpData1,2,"auto",true);//true for SMOOTHING, ;)
    reSize(smooth);
    original.removeMovieClip();
    mainHolder._x = -(smooth._width / 2);
    mainHolder._y = -(smooth._height / 2);
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip(srcImg,original);

function reSize(target) {
    if (target._width > target._height) {
        s = Math.floor((300.85 / target._height) * 100);
    }

    if (target._width < target._height) {
        s = Math.floor((320.90 / target._width) * 100);
    }
    target._xscale = s;
    target._yscale = s;
}

这是一个两部分脚本,其中批量加载图像并将其放入空的动画片段,然后添加平滑滤镜。第二部分是一个缩放器,可自动调整图像大小并保持纵横比

这是踢球者。当我测试闪存片(未嵌入HTML)时,这个东西100%工作。 只要将swf放入html并在网页上查看,就不会加载远程图像。

我有点难以理解为什么会这样,这可能是防火墙还是安全问题?因为我在高安全性的防火墙环境中工作。

对此的任何指导都将非常感激。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

默认情况下,flash不允许跨域加载数据作为安全功能,但可以覆盖它。

这可能会有所帮助: allowDomain(security.allowDomain方法),如果你可以在图像服务器上运行swf

http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002104.html

也可以在服务器上使用跨域策略文件来授予对swf的访问权限: http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000470.html