关于 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 才能用啊?

求解惑,感谢!
展开
 我来答
有恩霈nI
2011-05-31
知道答主
回答量:15
采纳率:0%
帮助的人:17.1万
展开全部
我觉得你应该是用flash professional进行的AS3.0编程 所以一些面向对象的知识不太理解

如果你把语句写在了元件的类之中的话 有一个顺序的问题 trace语句如果是在元件被实例化时就执行 输出肯定是null 如果是加载到舞台以后执行 才有值

所以添加一个addEventListener(Event.ADDED_TO_STAGE
时间监听器 是有必要的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdway
2011-05-27 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:117万
展开全部
仔细看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);

}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式