
- 本栏最新文章
- 一个很头痛的SWF加载问题 04-01
- 用Flash去创作什么? 04-01
- 精简Flash文件体积的几个小技巧 04-01
- Flash简单实现网页中的Flash动画全屏 04-01
- flash与后台的交互 04-01
- flash缓入缓出运动 04-01
- Flash AS制作上升的水泡效果动画 03-31
- AS柔化函数(解决马赛克) 03-31
- flash+webservice 乱码问题解决一例 03-31
- flash动态改变注册点解决方案 03-31

- 本栏推荐文章
- Photoshop教程:水灵灵的美女调出来 12-30
- AS3与后台交互 12-21
- AS3通俗教程---AS3自身loading制作 12-19
一个很头痛的SWF加载问题
(aorition)问题:最近做个小东西,两个SWF(一个主SWF,一个作为模块准备加载进主SWF),分别运行都没有问题,但是一旦加载进去就出问题了。
报错:
=============================
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at AORDATA.AORas::PICmcproClass$iinit()
at flash.display::Sprite/flash.display:Sprite::constructChildren()
at flash.display::Sprite$iinit()
at flash.display::MovieClip$iinit()
at AORDATA.AORas::PicshowerClass$iinit()
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at MethodInfo-55()
at flash.events::EventDispatcher/flash.events:EventDispatcher::
dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
======================================================
已经迷糊了,请问各位大大,这个怎么解决呀?还有就是,做这样加载处理的时候有什么地方需要注意?请大大们提醒下...
(Poshidon)回复1:对被加载影片逐块测试吧。我的经验:可能是和stage有关的东东...
(zszen)回复2:提示你有个没定义的对像在被搞,你去仔细检查代码行...
最终解决方法:
(aorition)感谢大家,经过仔细检查终于把问题解决了。对,问题出在stage属性为null身上,害死个人的stage啊~~ (哭)
====================
细部分析和总结:
由于主SWF和子SWF单独运行都没有问题,一旦要求主SWF加载子SWF的时候就报找不对象或者属性这个问题.导致子SWF不能顺利运行.
原因在子SWF的stage属性上. 单独运行的子SWF的时候,实例已经处于舞台上.所以子SWF的stage属性是事实存在的.所以在子SWF类构造函数中引用stage属性是正常的.但是一旦被主SWF加载的时候.主SWF还没有来得及addChild(子SWF),导致子SWF的stage属性为null.在过构造函数中引用值为null的stage导致错误发生.以至于不能正常加载.
=========
解决这个问题办法:
在子SWF类构造函数中加入(红色)
//举例code:
//===============
package{
import flash.display.MovieClip;
import flash.events.Event;
public class testClass extends MovieClip{
public function testClass():void
{
this.addEventListener(Event.ADDED_TO_STAGE,onStageHandler);
}
priatve function onStageHandler(evt:Event)
{
init()
this.removeEventListener(Event.ADDED_TO_STAGE,onStageHandler);
}
priatve function init():void
{
//子SWF的主体构CODE放这里.
//对stage属性的引用
}
}//endclass
}//endpackage


