细部分析和总结:
由于主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
由于主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