研究了半天搞不清楚,于是上网搜索了一下,发现了有文章这么说:“原因在于界面代码分离项目主时间轴通常只有一帧,而flash会默认在第一帧导出类,并在此之后调用文档类的构造函数,也就是说progress事件的侦听是在加载完成后才起作用,当然看不到进度了。”
既然如此,我放弃了在一个文件里实现下载过程的想法,于是写了一个很简单的下载类来载入动画文件,但是让我没想到的是一载入动画文件就报错,而这动画文件直接播放又是没有任何问题,又是研究了老半天,上网找了文章,才发现问题出在载入的动画文件在构造函数里访问了stage对象,而通过别的文件载入此动画文件时,会首先调用构造函数,而此时并不能访问到stage对象,于是就出错了,解决方法就是我的上一篇日志里的这一句:
1
addEventListener(Event.ADDED_TO_STAGE,
function
()
{
2 stage.addEventListener(MouseEvent.CLICK, clickScene);
3} );
2 stage.addEventListener(MouseEvent.CLICK, clickScene);
3} );
我通过“ADDED_TO_STAGE”事件,在文件加入到舞台后再加上对stage的访问,这样就没有问题了。
另外有一点要注意的是,Away3D的view3D的render()函数也要访问舞台,因此,避免将render()函数放置在文档类的构造函数里,或者使用“ADDED_TO_STAGE”事件解决问题。