as3.0中有绝对路径的概念?

我这样理解:在as3.0中舞台是最终容器,他下面有主时间轴(时间轴也是容器),时间轴下面有显示对象。如果这样,应该stage.root.对象,这种点语法来访问对象。可是测... 我这样理解:在as3.0中舞台是最终容器,他下面有主时间轴(时间轴也是容器),时间轴下面有显示对象。如果这样,应该stage.root.对象,这种点语法来访问对象。可是测试时报错,请详解其原因,好吗? 展开
 我来答
灬心羽
2012-12-12 · TA获得超过1164个赞
知道小有建树答主
回答量:921
采纳率:100%
帮助的人:371万
展开全部
前面说的没错. 可是访问的语法很有问题
root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象
但stage是已经是最终的,访问它的根节点得到的还是stage本身.
你可以尝试trace一下来搞清楚这个问题. 在时间轴上写的.
trace(stage.root) [object Stage]
trace(this) [object MainTimeline]
trace(root) [object MainTimeline] MainTimeline即主时间轴是所有在舞台上显示对象的root.印证了你的那个观点. 但是如果显示对象没有添加到舞台上,那root就访问到它的顶级显示容器.

想通过root访问舞台上的显示对象必须把root强制转换成MovieClip.
追问
请问为什么把root强制转换成MovieClip呢?它们都是显示对象不什么吗?
追答
你有没有注意到root返回的是一个DisplayObject类?
至少是DisplayObject子类的DisplayObjectContainer才能作为容器,才能有子实例的说法
直接 root. xx 肯定调用不到.
而且记得看过某资料说 主时间轴是一个扩展的Sprite类.sprite本身是无时间轴的,但是主时间轴有时间轴,所以这一点仍然不同.
与主时间轴性质基本一样的就只有MovieClip了.
zb6306
2012-12-12 · TA获得超过777个赞
知道大有可为答主
回答量:2585
采纳率:66%
帮助的人:1166万
展开全部
你要清楚的是,你的脚本并不是直接写在stage上,而是写在root上的,因此你的起始路径是root并不是stage,因此要是直接访问当前时间轴,直接用this就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式