我在包含papervision场景的SWF中加载了SWF。
我之前做过但问题是,我收到错误 - 我不确定问题到底是什么。
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");
}
我错过了一些明显的东西吗?
答案 0 :(得分:3)
问题是加载的swf开始运行而没有被添加到舞台上。所以stage
为空,导致该错误。
使用addedToStageEventHandler的第二个示例有效,因为只有在将对象添加到舞台后才会引用stage
,因此stage
不再为null。
第一个错误的可能解决方案是将加载程序添加到阶段。这样,当swf加载并启动时,它已经有stage
引用。
答案 1 :(得分:1)
如果出现错误,它甚至不会加载。您正在访问WowDemo()类上的未引用对象...您是否正确地实例化了该类?
答案 2 :(得分:0)
这似乎适用于我的孩子SWF:
this.addEventListener(Event.ADDED_TO_STAGE, addedToStageEventHandler);
function onClick(ev:MouseEvent):void
{
trace("MouseClick");
var event:Event = new Event("END", true, false);
this.dispatchEvent(event);
}
function addedToStageEventHandler(ev:Event):void
{
this.stage.addEventListener(MouseEvent.CLICK, onClick);
}
有谁知道为什么?