关于我的预加载器和主应用程序类(所有 AS3 / Flash CS4)之间的交互,我看到了一些奇怪的行为。粗略地说,这是事件的流程:
- Preloader.swf 加载两个东西:main.swf,它是主应用程序,以及由文本和图像组成的自定义对象的资源,这些资源由预加载器从各种 URL 组装到对象中。
- 加载完成后,Preloader 将 main.swf 添加为子项。预加载器然后调用
初始化(myCustomObject)
在 main.swf 上,其中 myCustomObject 是对预加载器在步骤 1 中组装的对象的引用,并且公共函数初始化(自定义对象:自定义对象):无效)
是 Main.as 中的方法签名。(Preload.as 将 Main 转换为 * 类型的对象,以便能够调用任意函数而不必担心编译时错误。) - Main.as 实际上是应用程序本身的容器,因此它实例化了一个
新应用程序(自定义对象);
传递对由预加载器组装的 customObject 的引用,并将其添加为子项。
我已经安装了迅雷,所以我可以在应用程序运行时记录消息,这就是我确定正在发生的事情。步骤 3 中的 Application 对象的实例化是造成问题的原因;出于某种原因,
myMainApplication = new Application(customobj);
Main.as 中的语句抛出了一个可爱的#1009
错误,这通常表示空指针引用或类似的东西。
奇怪的是,我添加了一些日志记录到Application.as
,它似乎接收到的引用customObject
没有问题;调用intoString()
的构造函数会完全返回预期的数据。customObject
Application
换句话说,myMainApplication = new Application(customobj);
Main.as 中的语句似乎同时成功和失败。是什么赋予了?