【问题标题】:AS3 preloader sorrows, unable to load symbols from libraryAS3 预加载器的悲哀,无法从库中加载符号
【发布时间】:2010-02-10 21:09:13
【问题描述】:

我创建了一个 AS3 预加载器,并将其代码放在第一帧。

然后我做了一个符号,并把它放在图书馆里。它被设置为在第 1 帧上不导出,并且 fla 的设置在第 2 帧上导出了所有类。在第二帧之前没有对该对象的引用。

然后,每当我在没有选中“在第一帧中导出”框的情况下编译时,flash 就会崩溃。

为了解决这个问题,一位朋友建议我在第 3 帧开始我的游戏逻辑,因此它会正确加载第 2 帧。这似乎工作正常,类正在正确实例化。

然后,原来它没有加载影片剪辑,只是实例化了类。同样,这可以通过在第 1 帧中导出来解决,但我真的负担不起。

同一位朋友建议我在第 3 帧的舞台上放置一个符号实例,并在第 4 帧执行游戏逻辑。他们说这将正确初始化电影剪辑。

然而,事实并非如此。如何在不导出到第 1 帧的情况下加载整个符号、图形和所有内容?此单个符号可能包含 10-20 MB 的图形,因此需要预加载。

感谢您的帮助!

编辑:长话短说,我只需要某种方式来加载影片剪辑,以便它可以被使用和可见以及一切。

编辑:有没有办法通过 AS3 强制加载影片剪辑?

【问题讨论】:

  • 在第 2 帧上粘贴一个 MovieClip 实例。

标签: actionscript-3 movieclip preloader


【解决方案1】:

很难从描述中弄清楚。

如果您制作一个新的 .fla 文件,请将您的大 (10-20MB) 剪辑粘贴到第 2 帧, 将您的导出帧设置为 2,然后尝试从第 1 帧预加载并在第 2 帧中访问大剪辑的内容,您会得到同样的错误吗?

假设你在第 1 帧中有这个:

stop();
this.loaderInfo.addEventListener(Event.COMPLETE, onComplete);

function onComplete(event:Event):void{
gotoAndStop(2);
}

在第 2 帧中:

trace(myLargeClip);//where myLargeClip would be your 10-20MB clip

应该没问题,否则,如果跟踪您的大剪辑返回 null,您可能想尝试使阶段无效:

在第 2 帧:

stage.addEventListener(Event.RENDER,onRender);
stage.invalidate();

function onRender(event:Event):void{
trace(myLargeClip);
}

基本上我的建议是:

  1. 隔离问题。看看你的大剪辑是否在类似但简化的场景中引起问题以及原因,然后一旦你得到修复,在你的主要 fla 中使用它。
  2. 尝试阶段失效,但由于我不完全了解您的设置,这只是一个疯狂的猜测。

HTH, 乔治

【讨论】:

  • 我实际上想通了,您关于为 actionscript 设置导出框架的建议是什么破坏了它...我将它设置回第 1 帧,因为符号正在加载,它最终工作了。
猜你喜欢
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2023-01-04
  • 1970-01-01
相关资源
最近更新 更多