【问题标题】:AS3 and the loader classAS3 和加载器类
【发布时间】:2010-05-20 17:54:44
【问题描述】:

我写在这里,因为在寻找解决方案后,我无法解决我的错误......

var test:MovieClip;

var sign:Loader = new Loader();  
sign.contentLoaderInfo.addEventListener(Event.COMPLETE, completSIGN);  
sign.load(new URLRequest("http://files.zebest-3000.com/278374/3011/3011.swf"));  

function completSIGN(e:Event):void  
{  
test = MovieClip(e.target.content);  
addChild(test);  
}

这是错误:

TypeError: 错误 #1009: Il est possible d'accéder à la propriété ou à la méthode d'une référence d'objet nul。在 Main::StateManager()

因此,电影(有些视频可以完美播放,有些则不能)不想加载到我的容器中;好像贴图有问题……无法修改远处的电影。

  • 是否有其他方法可以在彼此之间加载电影(我也尝试过使用 bytearray 加载,但都是一样的)?
  • 我们能否捕获此错误并重新定位实例以帮助他找到正确的方法?

【问题讨论】:

  • StateManager 中该行的空值是什么?我没有看到 StateManager 与此代码的关系。
  • 如果错误在StateManager,然后发布该代码
  • StateManager 是遥远电影的一部分,我没有代码,但是没有封装,电影可以工作!

标签: actionscript flash bytearray loader


【解决方案1】:

根据您的评论,我假设 StateManager() 是从远程 SWF 的文档类的构造函数中调用的,它会尝试使用 this.stagethis.root.stage 之类的东西访问 stage。现在,当作为独立 SWF 运行时,它将毫无问题地工作,因为 stage 属性将在调用文档类的构造函数时设置。远程加载时 stage 仅在您将其添加到完整的处理程序中后才设置。

对此我不确定,但请尝试在调用sign.load 之前调用addChild(sign); - 您可以从completeSign 方法中删除这两行。

【讨论】:

  • 在这种情况下,加载的内容是在添加到显示列表之前创建的,这也很有意义,您必须联系StateManager的作者来修复它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-30
  • 2013-06-03
  • 1970-01-01
相关资源
最近更新 更多