【发布时间】:2011-02-12 01:15:21
【问题描述】:
我在一个 SWF 中加载了一个 SWF,其中包含一个 papervision 场景。
我以前做过,但问题是,我收到一个错误 - 我不确定问题到底是什么。
private function downloadSWF(url:String):void
{
trace(url);
var urlRequest:URLRequest = new URLRequest(url);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loaderProgressEventHandler);
loader.load(urlRequest);
}
private function loaderProgressEventHandler(ev:ProgressEvent):void
{
loader.preloaderCircle.percent = ev.bytesLoaded / ev.bytesTotal;
}
当应用程序运行代码时 - 我收到错误:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.dehash.pv3d.examples.physics::WowDemo()
如果加载还没有完成,为什么我会收到这个?
提前谢谢各位。
编辑: 尝试一个空白的子 swf,看看另一个是否正在尝试访问父级中的某些内容。 ——豪尔赫
似乎我这样做了,即使使用带有鼠标单击侦听器的简单 SWF 也会导致错误:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at simple_fla::MainTimeline/frame1()
我的代码是:
import flash.events.MouseEvent;
this.stage.addEventListener(MouseEvent.CLICK, onClick);
function onClick(ev:MouseEvent):void
{
trace("MouseClick");
}
我错过了什么明显的东西吗??
【问题讨论】:
-
如果loader是一个Loader Object(var loader:Loader = new Loader()),那么preloaderCircle从哪里来?(loader.preloaderCircle.percent),除非var loader:Loader是本地变量downloadSWF,loaderProgressEventHandler 中的 loader 是对预加载器 MovieClip 的引用。还要检查演示是否试图以任何方式访问舞台。如果是这样,请预加载您的 swf,将其添加到舞台并在 ADDED_TO_STAGE 事件处理程序上使用 init() 方法或其他方法来运行您加载的 swf。
-
谢谢乔治。你的权利
loader.preloaderCircle...应该是loaderMenu.preloaderCircle,我打错字了。 init() 方法是一个完美的主意。不错。
标签: actionscript-3 flash loader