Flash AS3-加载程序类跟踪swf(文档类)问题
我使用Loader类加载3个外部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
__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”加载外部库。