Flash CS4 Loader类:图像最初加载,但加载新图像时返回错误

时间:2011-03-22 06:51:27

标签: flash image-loading file-not-found

这在标题中很难解释......首先,这是我在Actionscript中的代码:

var digitalGallery:Loader = new Loader();
digitalGallery.x = 730
digitalGallery.y = 210
digitalGallery.load(new URLRequest("images/nair_evanescentautumn.png"));
addChild(digitalGallery);

function dgtlLatest(event:MouseEvent):void {
 if(event.target == new_thumb1) {
    digitalGallery.load(new URLRequest("images/iilu_evanescantautumn.png"));
 }
 else if(event.target == new_thumb2) {
    digitalGallery.load(new URLRequest("images/daem_evanescantautumn.png"));
 }
 else if(event.target == new_thumb3) {
    digitalGallery.load(new URLRequest("images/moon_evanescantautumn.png"));
 }
 else if(event.target == new_thumb4) {
    digitalGallery.load(new URLRequest("images/dael_evanescantautumn.png"));
 }
}

function dgtlGalery(event:MouseEvent):void {
 if(event.target == gal_thumb1) {
    digitalGallery.load(new URLRequest("images/kryo_evanescantautumn.png"));
 }
 else if(event.target == gal_thumb2) {
    digitalGallery.load(new URLRequest("images/nair_evanescantautumn.png"));
 }
 else if(event.target == gal_thumb3) {
    digitalGallery.load(new URLRequest("images/lite_evanescantautumn.png"));
 }
 else if(event.target == gal_thumb4) {
    digitalGallery.load(new URLRequest("images/oasi_evanescantautumn.png"));
 }
}

new_thumb1.addEventListener(MouseEvent.CLICK,dgtlLatest);
new_thumb2.addEventListener(MouseEvent.CLICK,dgtlLatest);
new_thumb3.addEventListener(MouseEvent.CLICK,dgtlLatest);
new_thumb4.addEventListener(MouseEvent.CLICK,dgtlLatest);

gal_thumb1.addEventListener(MouseEvent.CLICK,dgtlGalery);
gal_thumb2.addEventListener(MouseEvent.CLICK,dgtlGalery);
gal_thumb3.addEventListener(MouseEvent.CLICK,dgtlGalery);
gal_thumb4.addEventListener(MouseEvent.CLICK,dgtlGalery);

此脚本用于flash中的加载程序图像库,作为类分配的一部分。发生的事情是,在flash中,当我打开swf文件时,初始图像(images / nair_evanescentautumn.png)将正常加载。但是,单击任何缩略图图像(包括完全相同的图像/ nair_evanescentautumn.png)将导致错误,指出无法找到该文件。

我无法弄清楚为什么这样做......我已经测试过了。单击每个缩略图会转到两个单独功能中的正确位置。所有所述全尺寸图像链接都在文件夹images /中,并且替换初始加载器图像将加载其他图像以代替默认图像。但是,即使一切正常,单击任何缩略图仍会导致找不到URL。

这只会让我发疯...创建一个简单的画廊并不困难。

这项任务将于周三到期,但是......我确信我可以在课堂上询问我的导师,但我宁愿在此之前完成任务,除了其他事情,我想不出别的事情除外发布这个。

非常感谢所有帮助...

编辑:

很抱歉没有发布错误...

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.

编辑2:

这是指向整个文件集的链接:

http://www.tsr-online.org/flash/index.swf

我的服务器不允许访问/ flash文件夹索引,但我可以提供目录列表。

/ flash目录: / images(包含所有图像) / cmsn(包含commissions.swf子页面) index.swf home.swf blog.swf traditional.swf digital.swf photography.swf commissions.swf

在有人问为什么我把这种内容放到Flash网站之前,我不是 - 这只是为了课堂作业。我只是试图弄清楚为什么我的图像没有正确加载,因为我只在功能上完成与在其他页面上完全相同的事情。

值得注意的是,commissions.swf具有完全相同的功能,只需加载swf文件,它就可以正常工作。家庭,传统,数字和摄影都有图像库,所有都有相同的问题(我只引用一页,因为如果我可以修复一个页面,我应该能够修复所有这些)。

至于艺术品,他们都是我的未婚夫。网站设计是为她而建的,我使用了这个项目的网站设计,因为我不想构建一个全新的界面设计。由于该项目还需要一个画廊,我觉得这个界面可以正常工作。

3 个答案:

答案 0 :(得分:1)

您的代码中存在拼写错误。这就是问题所在。来自您自己的代码的示例:

 else if(event.target == new_thumb2) {
    digitalGallery.load(new URLRequest("images/daem_evanescantautumn.png"));
 }

实际上拼写是:

http://www.tsr-online.org/flash/images/daem_evanescentautumn.png

注意确切的问题是“vanesc a ntautumn.png”,它应该是“vanesc e ntautumn.png。”

在上面的代码中修复拼写,一切都很好。

答案 1 :(得分:0)

由于我不得不对你的帖子发表评论,因为我必须写一个答案(这是一个问题):你为什么要尝试加载两次相同的图像?

答案 2 :(得分:0)

无论如何,你都会以一种非常迂回的方式开始尝试 - 试试这个:

var digitalGallery:Loader;

var thumbs:Array = ['new_thumb1',
                'new_thumb2',
                'new_thumb3',
                'new_thumb4',
                'gal_thumb1',
                'gal_thumb2',
                'gal_thumb3',
                'gal_thumb4']

var images:Array = ['iilu_evanescantautumn',
                'daem_evanescantautumn',
                'moon_evanescantautumn',
                'dael_evanescantautumn',
                'kryo_evanescantautumn',
                'nair_evanescantautumn',
                'lite_evanescantautumn',
                'oasi_evanescantautumn']

setupThumbs()

function setupThumbs(){
    for (var i=0; i<thumbs.length; i++){
        var thumb = this.getChildByName(thumbs[i])
        thumb.id = i
        thumb.addEventListener(MouseEvent.CLICK, loadImage);
    }
}

function loadImage(event:MouseEvent){
    var id = event.currentTarget.id
    digitalGallery = new Loader();
    digitalGallery.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
    digitalGallery.load(new URLRequest("images/"+images[id]+".png"));
}

function loadComplete(event:Event):void {
    trace("Complete");
    addChild(digitalGallery)
    digitalGallery.x = 730;
    digitalGallery.y = 210;
}