Здраствуйте. Объясните мне пожалуйста, зачем нужен кастинг ? Да да, именно зачем, а не что это такое. Проблемы как таковой нет, но есть здоровый интерес. Вот к примеру написал:

Код AS3:
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.Event;
import flash.events.MouseEvent;
public class RootClass extends Sprite {
private var txt:TextField;
public function RootClass() {
stage.addEventListener("click", onStageClick);
}
public function onStageClick(event:MouseEvent) {
txt = new TextField();
txt.type = "input";
txt.x = event.stageX;
txt.y = event.stageY;
txt.addEventListener("added", onTxtAdded);
addChild(txt);
}
public function onTxtAdded(event:Event) {
trace(event.target);
stage.focus = event.target as TextField;
}
}
}
Если убрать кастинг, то компилятор начнет материться о невозможности преобразовать тип Object в InteractiveObject. Тут впринципе все понятно, но какого тогда
trace(event.target), выдает — [object TextField]. Это компилятор так издевается ? Если он и так знает, что это текстовое поле, то что он от меня хочет ?!