0

我想替换一个精灵的形象。

但在此之前,我想检查图像是否存在于目录中。有没有办法做到这一点?

newImage = new ImageLoader(dir + temChild.category + '/' + temChild.productUrl + '.png', {
                                                                    container : temChild,
                                                                    height : 80,
                                                                    width : 80,
                                                                    scaleMode : 'proportionalInside',
                                                                    onComplete : onColorImageLoad, 
                                                                    centerRegistration : true,
                                                                    noCache: true,
                                                                    autoDispose : true
                                                                  });
4

2 回答 2

2

如果您使用 ImageLoader 加载一张图像,您可以使用回调(事件)。 由于自动完成,我使用 ImageLoaderVars 类

var loaderVars:ImageLoaderVars = new ImageLoaderVars();
loaderVars.container=temChild;
loaderVars.height=80;
loaderVars.width=80;
loaderVars.scaleMode='proportionalInside';
loaderVars.centerRegistration=true;
loaderVars.noCache=true;
loaderVars.autoDispose=true;
loaderVars.onComplete=temChild;
loaderVars.onComplete=onColorImageLoad;

//lets watch for errors if we don't have file on the server or something else
loaderVars.onError=onErrorCallback;
loaderVars.onFail=onFailCallback;                                                        

newImage = new ImageLoader(dir+temChild.category+'/'+temChild.productUrl+'.png',
loaderVars);

private function onFailCallback(event:LoaderEvent):void
{
 //do something if you want here
}

private function onErrorCallback(event:LoaderEvent):void
{
 //do something if you want here
}

如果您在一个 LoaderMax 中有多个 ImageLoder,请决定您想要从失败的加载器中获得什么,默认情况下 LoaderMax skipFailed=true;。还有 LoaderMax 事件:childFail、ioError、securityError。

于 2013-01-14T05:19:58.017 回答
1

尝试将属性添加nameloaderVars并使用LoaderMax.getContent方法:

import com.greensock.loading.ImageLoader;
import com.greensock.loading.LoaderMax;
import com.greensock.events.LoaderEvent;

var loaderVars:Object = {
    container : this,
    height : 80,
    width : 80,
    scaleMode : 'proportionalInside',
    onComplete : onColorImageLoad, 
    centerRegistration : true,
    noCache: true,
    autoDispose : true,
    name: 'photo1' // Put your image id here
};

var newImage:ImageLoader = new ImageLoader('http://images.apple.com/es/home/images/hero_ipad_retina.jpg', loaderVars);

// Loads if photo1 has not been loaded
if (LoaderMax.getContent('photo1') && !LoaderMax.getContent('photo1').rawContent)
{
    newImage.load();
}

function onColorImageLoad (event:LoaderEvent):void 
{
    trace(event);
}
于 2013-01-14T12:52:28.000 回答