Доброго времени суток. Возникла проблема с пониманием работы оператора as. Читал help и Мука и
данный faq, но честно говоря, не понял.
На примере данного кода:
Почему же вызывается метод destroy класса MapObject? Ведь разные типы имеют переменная _layerMain и класс MapObject.

Код AS3:
package
{
public class GameMap extends Sprite
{
private var _layerMain:Sprite;
public function GameMap()
{
_layerMain = new Sprite();
addChild(_layerMain);
}
public function clear():void
{
if (_layerMain.getChildAt(0) is MapObject)
{
/* destroy - это пользовательский метод класса MapObject
class MapObject extends Sprite */
(_layerMain.getChildAt(0) as MapObject).destroy();
}
}
}
}