AS3.0中的显示编程(二)-- DisplayObject类
2010-10-10 07:24:20 来源:WEB开发网运行下,看看效果吧,呵呵。
(4) root、stage、this
AS3.0里的root变化还是非常大的,大到什么程度呢,呃,我用例子来说明吧。
AS3.0里,创建一个文档后,首先就存在一个基础显示容器stage,然后在stage下有了第一个显示对象,就是root,我们可以用下面代码验证:
trace(stage.numChildren); //返回:1
trace(stage.getChildAt(0) == root); //返回:true
trace(root.parent == stage); //返回:true
此时的root,和this是等值的,我们可以用下面代码验证:
trace(root == this); //返回:true
然后我们在舞台上手动绘制3个MC,分别实例名为t1、t2、t3,然后用以下几种方式访问:
trace(root.numChildren); //出错
trace(root.t1); //出错
trace(this.numChildren); //正确:返回3
trace(this.t1); //正确
trace(this.getChildAt(0).name); //正确:返回t1
所以这个也是我比较迷惑的一个地方,虽然root和this是等值的,但是并不能直接用root进行访问了。
最后,我们在试验下面几行代码:
trace(t1.root == this); //返回:true
trace(t1.parent == this); //返回:true
trace(t1.root.numChildren); //出错
trace(t1.parent.numChildren); //正确,返回3
这几处地方为什么会报错,root和this在哪里存在不同,这个我暂时还没有弄明白,如果哪位朋友清楚,敬请指正。
(5) hitTestObject()、hitTestPoint()
我们做Flash游戏的时候,比如判断格斗动作,或者飞行射击等,经常需要判断两个物体之间是否有相交,那就需要用到上面的两个方法。
前者是判断两个物体之间是否有相交,后者是判断物体与某个坐标点是否有相交。
出处http://windtoto.blog.51cto.com/1986737/402126
赞助商链接