关于 flash actionscript 3.0 的 root 和 stage 对象
在文档类Main.as中输出stage和root,如:trace(stage);trace(root);会输出[objectStage]和[objectMain]但是,在...
在 文档类 Main.as 中输出 stage 和 root,如:
trace(stage);
trace(root);
会输出 [object Stage] 和 [object Main]
但是,在其他类中输出,(我是在元件类中输出) ,却都是 null,
为什么啊?
我的理解 stage 指向舞台对象, root 指向文档类对象啊,
那为什么只有在文档类中 stage 和 root 才能用啊?
求解惑,感谢! 展开
trace(stage);
trace(root);
会输出 [object Stage] 和 [object Main]
但是,在其他类中输出,(我是在元件类中输出) ,却都是 null,
为什么啊?
我的理解 stage 指向舞台对象, root 指向文档类对象啊,
那为什么只有在文档类中 stage 和 root 才能用啊?
求解惑,感谢! 展开
2个回答
展开全部
我觉得你应该是用flash professional进行的AS3.0编程 所以一些面向对象的知识不太理解
如果你把语句写在了元件的类之中的话 有一个顺序的问题 trace语句如果是在元件被实例化时就执行 输出肯定是null 如果是加载到舞台以后执行 才有值
所以添加一个addEventListener(Event.ADDED_TO_STAGE
时间监听器 是有必要的
如果你把语句写在了元件的类之中的话 有一个顺序的问题 trace语句如果是在元件被实例化时就执行 输出肯定是null 如果是加载到舞台以后执行 才有值
所以添加一个addEventListener(Event.ADDED_TO_STAGE
时间监听器 是有必要的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
仔细看flash自带帮助,元件只有加载到显示列表中,stage、root才有值。
追问
我加载到显示列表中了
追答
例如
package {
import flash.display.Sprite;
public class Main extends Sprite {
public function Main() {
addChild(new Sample())
}
}
}
package {
import flash.display.Sprite;
import flash.events.Event;
public class Sample extends Sprite {
public function Sample() {
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
public function onAddedToStage(e:Event):void {
trace(stage);
trace(root);
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询