【发布时间】:2013-11-23 08:32:27
【问题描述】:
我正在使用 Flash Professional IDE。参考下面的类,如果我将 FLA 的类属性设置为 testingsub1(忽略 Main),则代码可以正常工作。但是,如果我将类设置为 Main,则代码在 stage.addChild(container); 处以“TypeError:错误 #1009:无法访问空对象引用的属性或方法”进行测试。
这违背了我的理解,即舞台是全局的,并且始终可以直接添加显示对象。有什么见解和解决方案吗?
package {
//import com.idtlw.iso.utils.Const;
import flash.display.*;
public class testingsub1 extends testing {
public function testingsub1() {
trace("initializing testing sub 1");
var container:Sprite=new Sprite();
var test1:Sprite=new Sprite();
container.addChild(test1);
}
}
}
package {
import flash.display.*;
public class testing extends Sprite {
public function testing() {
trace("initializing testing");
var container:Sprite=new Sprite();
var test1:testreg1=new testreg1();
container.addChild(test1);
stage.addChild(container);
}
}
}
package
{
import flash.display.*;
public class Main extends Sprite
{
public function Main ()
{
var test1:Sprite=new Sprite();
stage.addChild(test1);
var tester:testingsub1=new testingsub1();
}
}
}
【问题讨论】:
-
stage不可全局访问。 DisplayObject 的stage属性为空,除非它附加到舞台的显示列表层次结构中。 -
我认为——除了主显示对象——没有任何东西需要直接访问
stage。我们谈论的是可以嵌套在许多可能情况下的组件;一个组件不能直接向舞台添加另一个组件。
标签: actionscript-3 stage