As3加载空白图像

时间:2013-07-15 19:06:35

标签: actionscript-3 flash

我在从外部源加载图像时遇到问题(这是有效的,但我们将服务器更改为https并进行了一些调整)。 现在,当我加载图像时,没有错误,但宽度,高度都是0.此外,图像为空白。 我尝试使用此脚本加载一些随机的互联网图像,它工作正常。但是使用原始 - (https://www.lovemarks.co/images/be50fe37eac192fb7c0d17353f5ef993a.jpg) - 它不起作用。

var somethingLoaded:Boolean = true;
var actualPic:*;
var pictLdrX:Loader = new Loader();
var pictURLX:String = 'https://www.lovemarks.co/images/be50fe37eac192fb7c0d17353f5ef993a.jpg';
var pictURLReqX:URLRequest = new URLRequest(pictURLX);
var loaderContext:LoaderContext = new LoaderContext();
pictLdrX.load(pictURLReqX);
pictLdrX.contentLoaderInfo.addEventListener(Event.INIT , loadedRemember)                    

function loadedRemember(event:Event){
    var targetLoader:Loader = Loader(event.target.loader);
    var newmc:MovieClip = new MovieClip();
    addChild(newmc);
    newmc.addChild(targetLoader.content);
    newmc.x = -targetLoader.width/2;
    newmc.y = -targetLoader.height/2;
    trace ('w+'+targetLoader.width);     
    trace ('h+'+targetLoader.height);
    trace ('x+'+newmc.x);
    trace ('y+'+newmc.y);   
}

1 个答案:

答案 0 :(得分:0)

这样做的方法是首先听取Event.COMPLETE而不是Event.INIT

pictLdrX.contentLoaderInfo.addEventListener(Event.COMPLETE , loadedRemember);

然后,不要在处理程序中引用实际的加载器,而是直接引用图像,方法是先将Event.target.content转换为Bitmap

function loadedRemember(event:Event)
{
    trace("loadedRemember()");

    var newmc:Bitmap = Bitmap(event.target.content);
    addChild(newmc);
    // Your math to center may need to be adjusted
    // to account for such a big image size
    newmc.x = -newmc.width/2;
    newmc.y = -newmc.height/2;

    trace ('w+'+newmc.width + '\nh+'+newmc.height + '\nx+'+newmc.x + '\ny+'+newmc.y);   
}

另外,检查输出窗口中与跨域相关的任何安全错误。