Показать сообщение отдельно
Старый 12.04.2009, 02:30
Fatality вне форума Посмотреть профиль Отправить личное сообщение для Fatality Найти все сообщения от Fatality
  № 1  
Ответить с цитированием
Fatality
 
Аватар для Fatality

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Question Зачем нужен кастинг ?

Здраствуйте. Объясните мне пожалуйста, зачем нужен кастинг ? Да да, именно зачем, а не что это такое. Проблемы как таковой нет, но есть здоровый интерес. Вот к примеру написал:
Код 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]. Это компилятор так издевается ? Если он и так знает, что это текстовое поле, то что он от меня хочет ?!