在图像加载flex时添加加载程序图像

时间:2010-02-23 10:36:21

标签: flex

我需要创建一个图库来加载图像并显示它们。这部分很好:

/**    
 * @variable image_name to store the name of the selected item
*/      
private function showimage(evt:Event):void
{
    // to store the name of the selected image
    var image_name : String = evt.currentTarget.selectedItem.img_name;

    // checks if any item is clicked
    try
    {
        if(image_name == "")
        {
            throw new Error("No image selected from the list");
        }

        // supplying the image source for the Image imgmain
        // also supplying the height and width for the image source  
        imgMain.source = siteurl + image_name.toString(); 

    }
    catch(err:Error)
    {
        Alert.show(err.message);
    }
}

其中imgMain是图像组件的id。

但是,我需要一点点扭曲。在加载图像时应显示过渡图像,即加载图像。 Plz帮助我。

1 个答案:

答案 0 :(得分:0)

这很容易实现。 我建议这样做。 为您的加载图像创建一个'imageHolder'Sprite并将其添加到显示列表中。 在您的loader.contentLoaderInfo上添加Event.INIT的监听器,然后在加载完成后删除加载映像并将loader.content添加到imageHolder。

var _imageHolder:Sprite = new Sprite();
addChild(_imageHolder);

// add your loading image to the _imageHolder
_imageHolder.addChild(new LoadingImage()); // exported in your library?

var _loader:Loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoadComplete);
_loader.load(new URLRequest('path to assset'));

// image has loaded so remove the display image and add the content
function _onLoadComplete(e:Event):void{
    _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, _onLoadComplete);
    _imageHolder.removeChildAt(0);
    _imageHolder.addChild(_loader.content);
}