Flash调试器的行为与具有AS3和事件的播放器不同

时间:2011-06-14 20:49:10

标签: actionscript-3 debugging flash flash-cs5

为什么这适用于flash professional的调试器,但是在编译的SWF上有null

var firstParameter:SomeObject = new SomeObject();
someLoader = new Loader();
someLoader.contentLoaderInfo.addEventListener(
    Event.COMPLETE
  , function(evt) {
      onLoaded(evt, firstParameter);
    }
  , false
);

function onLoaded (evt:Event, param:SomeObject):void {
    mcOnSceneForTracing.text = param; // this is used for SWF debugging
}

记录:

  • 为了使其无任何问题,creating a separate scope可以“解决”这个问题。但是,在这里,我想知道为什么,这个例子至少可以在调试器上工作。
  • 而且,如果您有更好的方法,除了使用两个匿名函数到pass参数,变量,值,通过事件,告诉!我不愿意extend the Event。 2005年。
  • mcOnSceneForTracing是我用来在调试器外“追踪”的东西。这里也建议采用更好(更简单)的方法来做到这一点!我听说Vizzy很好,但还没试过。

1 个答案:

答案 0 :(得分:1)

我的猜测是:从调试器播放器加载资源时,操作立即结束,因此在调用匿名侦听器函数时firstParameter可用,但在其他地方运行swf时,加载操作需要更长,然后对firstParameter的引用丢失,因为它是一个局部变量。