代码之家  ›  专栏  ›  技术社区  ›  user43244

错误2099:加载对象的加载不足,无法提供此信息

  •  2
  • user43244  · 技术社区  · 17 年前

    我有一个flash应用程序,由as3组件组成,我正试图在flex中运行。

    在flash中,在将主组件添加到stage之后,loader对象(loaderinfo.loader)为空,这很好,我可以处理它。

    在flex中,在applicationcomplete事件中,我将主组件添加到stage中,加载程序对象的getter抛出一个异常-error 2099:加载对象的加载不足以提供此信息。

    此外,当加载的swf文件的属性和方法可访问时调度的init事件没有触发,这可能是问题的一部分。但我弄不明白为什么没有被派遣。

    你知道为什么同一个代码有两个不同的结果吗?

    3 回复  |  直到 17 年前
        1
  •  1
  •   aaaidan    17 年前

    嗯,那似乎是个令人沮丧的问题。当你说“主组件”时,我猜你指的是flash中的document类吧?

    我对Flex没有足够的知识来对您描述的问题进行评论,但我可以建议您尝试使用 ADDED_TO_STAGE 而不是 INIT 作为你的活动…

    public class MainFlashClass extends Sprite {
      public function MainFlashClass() {
        addEventListener(Event.ADDED_TO_STAGE, onInit);
      }
      public function onInit(e:Event):void {
        removeEventListener(Event.ADDED_TO_STAGE, onInit);
    
        // do your initialisation code here
      }
    }
    

    这可能适用于两种情况。我找到了 添加到舞台 更有用的是,它总是被触发,无论在执行swf时类是否已经加载(如document类),或者是否正在加载 Loader .

        2
  •  1
  •   vanhornRF    17 年前

    我不确定这是否是init事件的原因,但我知道在flash player 9中,我假设它是您的swf版本?通过自己的evt目标引用加载程序时出现错误。基本上,如果您正在加载某些东西,并且尝试访问加载程序的属性,但EVT.Toal.LooSeriFo.Load将无法找到它本身,并抛出您在问题中描述的错误。我相信这是一个已知的错误Flash播放器9,这是固定的释放CS4和闪存播放器10。

    这里有一个链接到描述一些问题的线程,希望它能帮助您

    http://www.actionscript.org/forums/showthread.php3?t=137599

        3
  •  1
  •   shanethehat    15 年前

    你一定要发代码,这样我们才能看得更清楚。

    这就是说,在addchild之后,您是要为“主组件”还是mx:application获取loaderinfo?

    //onApplicationComplete event handler
    var myswf:SWFLoader = new SWFLoader();
    myswf.load(...);
    addChild(nmyswf);
    
    trace(myswf.loaderInfo.loader);
    //end onApplicationComplete
    

    这就是你要做的吗?如果是,则需要向“主组件”(假设外部加载了swf)添加一个事件侦听器,以查明event.complete何时发生。

    var myswf:SWFLoader = new SWFLoader();
    myswf.addEventListener(Event.COMPLETE, onMySWFComplete);
    //..rest of code
    

    希望能有所帮助。如果没有,请输入邮政编码。

    推荐文章