AS3中的getChildByName

在AS3中,可以用getChildByName来获取一个元件,

(用getChildByName,好处是可以被其它IDE防问,而且更规犯)

但是要注意返回的类型是DisplayObject,

这样一旦元件中有一些自定义的方法就不能使用了。

比如一个类Ball,Ball有一个方法move,那么可以这样写:

var ball:Ball=new Ball();

addChild(ball);

ball.move();//这样没问题

getChildByName("ball").move();//这样编译时会报错

其原因应该就是getChildByName返回的类型是DisplayObject,

而并不是Ball,所以无法调用Ball的方法。

如果这样写:

var ball:Ball= getChildByName("ball") as Ball;

ball.move();

这样就没问题了,编译通过,可以调用Ball的方法.

posted on 2010-12-21 14:21  602147629  阅读(728)  评论(0编辑  收藏  举报