【问题标题】:Flash CS4 Loader Class: Image Loads Initially, but Error Returned When Loading New ImageFlash CS4 加载器类:图像最初加载,但在加载新图像时返回错误
【发布时间】:2011-03-22 06:51:27
【问题描述】:

这在标题中很难解释……首先,这是我在 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) 将正常加载。但是,单击任何缩略图(包括完全相同的 images/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(包含missions.swf 子页面) 索引.swf 主页.swf 博客.swf 繁体字.swf 数字.swf 摄影.swf 佣金.swf

在有人问我为什么要把这种内容放到 Flash 网站中之前,我不是——这只是为了课堂作业。我只是想弄清楚为什么我的图像加载不正确,而我只在函数中执行与在其他页面上完全相同的操作。

值得注意的是,commissions.swf 具有完全相同的功能,只是加载了 swf 文件,并且运行良好。家庭、传统、数字和摄影都有图片库,并且都有相同的问题(我只引用了一页,因为如果我能修复一页,我应该能够修复所有这些)。

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

【问题讨论】:

  • 你能把你所有的项目文件都贴在某个地方吗?那将是最好的情况,因为我可以通过这种方式快速为您调试它,而不是猜测天气有什么我看不到的可能是原因。
  • 此外,在发布这些类型的问题时,请粘贴 Flash 给您的确切错误消息。示例“错误 1015:Blah blah blah MyClass 第 51 行”。如果您没有看到太多 nfo,请确保进入您的 Flash IDE 发布设置并单击“启用调试”复选框。
  • 是的,我忘记了错误...我在第一篇文章中添加了它,这里也是:错误 #2044:未处理的 IOErrorEvent:。文本=错误 #2035:未找到 URL。我会将有问题的文件上传到服务器并在第一篇文章中放置一个链接。无论如何,我明天必须这样做。
  • @JesseNicholson 好的,我在第一篇文章中添加了错误和在线 Flash 应用程序的链接。我还包括了一个目录列表(我的服务器不允许显示实际的索引),我还包括了一些有关相关应用程序的其他详细信息。

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


【解决方案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”。

修正上面代码中的拼写,一切都会好起来的。

【讨论】:

  • 显然我的复制粘贴无法正常工作,然后...因为我复制了最初的“digitalGallery.load(new URLRequest("images/nair_evanescentautumn.png"));”几次并用它替换了第二个,以确保它设置正确。呃...
  • 唔……现在我觉得自己像个白痴。虽然,evenescent 总是给我带来问题.... :P 现在工作,谢谢。
  • 很高兴听到它正在工作。不要觉得自己像个白痴,这件事发生在最好的身上。我已经花了几个小时把脸从桌子上摔下来,就这样的问题对几壶咖啡大发雷霆,所以不要担心,也不要让任何人试图让你为此感到愚蠢,继续施压. :)
  • 嘿,非常感谢...这有帮助。 ^_^ 我一定会在将来(不是如果)遇到其他问题时在这里发布更多问题。 xD
【解决方案2】:

由于奇怪的限制,我无法对您的帖子发表评论,因此我必须写一个答案(这是您的一个问题):您为什么要尝试两次加载同一张图片?

【讨论】:

  • 两次加载相同的图像是无关紧要的,他不应该得到他描述的两次或多次加载相同资产的性质的错误。
  • 当然,但加载两次是不必要的,首先删除这些内容甚至可以解决问题或了解问题发生的原因。无论如何,有关该错误的更多信息会很好。
  • 它并没有真正加载相同的图像两次。加载程序 - 假定 - 删除其中的任何内容,然后加载新内容。它应该是一个画廊;默认情况下会显示一张图像,然后您可以单击缩略图并将图像替换为新图像。然后,如果您单击原始图像的缩略图,它也会重新加载该图像。而且我已经尝试将代码从重新加载第一张图像切换到重新加载当前帧......它仍然没有解决为什么其他图像没有加载的问题。
【解决方案3】:

无论如何,你有点绕道而行 - 试试这个:

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;
}

【讨论】:

  • 我想我可以做这样的事情......但我还不太热衷于 ActionScript。并不是说我不擅长编程——我发现它比设计方面要容易得多。我设置它的方式是(其中一种)我被告知设置它的方法。不幸的是,我的教练告诉我使用的另一种方法也不起作用......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 2012-10-11
相关资源
最近更新 更多