Flash AS3-加载程序类跟踪swf(文档类)问题

Flash AS3-加载程序类跟踪swf(文档类)问题,flash,actionscript-3,Flash,Actionscript 3,我使用Loader类加载3个外部SWF: sharedTopics.swf(没有文档类) fonts.swf(文档类为FontManager) main.swf(文档类为main) 相同的加载程序用于加载所有3个资源 __assetLoader = new Loader(); var urlReq:URLRequest = new URLRequest(target.path); __assetLoader.contentLoaderInfo.addEventListener(Progress

我使用Loader类加载3个外部SWF:

  • sharedTopics.swf(没有文档类)
  • fonts.swf(文档类为FontManager)
  • main.swf(文档类为main)
  • 相同的加载程序用于加载所有3个资源

    __assetLoader = new Loader(); 
    var urlReq:URLRequest = new URLRequest(target.path);
    __assetLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, this.preloadProgress);
    __assetLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.assetCompleteHandler); 
    __assetLoader.contentLoaderInfo.addEventListener(Event.INIT, this.assetInitHandler); 
    __assetLoader.load(urlReq);
    
    在完整处理程序中,我将加载程序内容添加到电影剪辑中,然后跟踪一个变量:

    var swf:DisplayObject = __assetLoader.content;
    Debug.doTrace("Shell:: assetCompleteHandler():: content " + swf);
    __app.addChild(MovieClip(swf));
    
    加载sharedTopics、fonts和主SWF(分别)时,我会得到以下跟踪语句:

    Shell:: assetInitHandler():: evt.currentTarget.content [object MovieClip]
    Shell:: assetInitHandler():: evt.currentTarget.content [object FontManager]
    Shell:: assetInitHandler():: evt.currentTarget.content [object Main__Preloader__]
    
    我希望最后一个trace语句看起来类似于“[object Main]”,它是文档类的名称,但是内容是加载程序。你知道为什么会这样吗

    在后面的函数中,我尝试调用Main类的init函数,并得到以下错误:

    Error #1069: Property init not found on classes.Main__Preloader__ and there is no default value.
    
    我希望这能解释清楚

    提前感谢,


    Mike

    看起来main.swf不打算像您尝试的那样间接加载。zeh有一个观点,Main可能是SWF的孩子

    如果是这种情况(看起来是这样),您应该查看Main.as,找到Main_preload的实例,检索它正在加载的url,然后改为加载它。。。或者尝试绕过Main\u预加载程序,或者/或者在AssetLoading类中重新实现它。

    看起来Main.swf并不像您尝试的那样被间接加载。zeh有一个观点,Main可能是SWF的孩子

    如果是这种情况(看起来是这样),您应该查看Main.as,找到Main_preload的实例,检索它正在加载的url,然后改为加载它。。。或者尝试绕过主预加载程序或/并在AssetLoading类中重新实现它。

    罪魁祸首是TLFTextField。默认情况下,在CS5中,“库路径”(在ActionScript3.0设置>库路径中找到)项设置为运行时共享库,并使用默认预加载程序,因此通过将“默认链接”更改为“合并到代码”,您不必担心从外部加载这些库…

    罪魁祸首是TLFTextField。默认情况下,在CS5中,“库路径”(在ActionScript3.0设置>库路径中找到)项设置为运行时共享库,并使用默认预加载程序,因此通过将“默认链接”更改为“合并到代码”,您不必担心从外部加载这些库…

    Main是如何创建的?显然,它使用了两个框架的技巧来编译SWF,这通常是使用Flex或使用SDK-frame命令行参数时所做的。在这种情况下,您必须等待主SWF也被初始化,或者以某种方式找出它何时完全可用(完全加载)。可能Main不是SWF,而是它的一个孩子。谢谢你的回复Main.fla附加了document类,在fla里面没有AS。该类确实包含相当数量的AS和包导入等。。。我不熟悉你提到的“两帧”技巧。另外,我刚刚添加了一个递归函数,该函数尝试调用init函数,该函数捕获“Main\uuu preload\uuuu”上init not exitsing的错误并递归。没有这样的运气。Main是怎么产生的?显然,它使用了两个框架的技巧来编译SWF,这通常是使用Flex或使用SDK-frame命令行参数时所做的。在这种情况下,您必须等待主SWF也被初始化,或者以某种方式找出它何时完全可用(完全加载)。可能Main不是SWF,而是它的一个孩子。谢谢你的回复Main.fla附加了document类,在fla里面没有AS。该类确实包含相当数量的AS和包导入等。。。我不熟悉你提到的“两帧”技巧。另外,我刚刚添加了一个递归函数,该函数尝试调用init函数,该函数捕获“Main\uuu preload\uuuu”上init not exitsing的错误并递归。没有这样的运气。谢谢你的回复。我不完全确定Main怎么可能是swf的子类,因为Main.fla的文档类是“Main”。我想指出的一点是,我没有定义“Main\uu预加载程序”,只在加载Main时发生。main.fla确实包含从RSL(sharedTopics)导入的资产。也许这就是原因。我还将提到我正在使用CS5,如果这能揭示任何奇怪之处的话。。。问题是我使用的是TLFTextField,必须将Actionscript 3.0设置>库路径中的“默认链接”更改为“合并到代码中”。以前的默认链接是“运行时共享库”,因此“主”使用预定义的“预加载程序SWF”加载外部库。感谢您的回复。我不完全确定Main怎么可能是swf的子类,因为Main.fla的文档类是“Main”。我想指出的一点是,我没有定义“Main\uu预加载程序”,只在加载Main时发生。main.fla确实包含从RSL(sharedTopics)导入的资产。也许这就是原因。我还将提到我正在使用CS5,如果这能揭示任何奇怪之处的话。。。问题是我使用的是TLFTextField,必须将Actionscript 3.0设置>库路径中的“默认链接”更改为“合并到代码中”。以前,默认链接是“运行时共享库”,因此“主”使用预定义的“预加载程序SWF”加载外部库。