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的方法.