Показать сообщение отдельно
Старый 13.11.2011, 23:40
goldlider вне форума Посмотреть профиль Отправить личное сообщение для goldlider Найти все сообщения от goldlider
  № 1  
Ответить с цитированием
goldlider

Регистрация: Jun 2010
Сообщений: 120
По умолчанию странное поведение as

Доброго времени суток. Возникла проблема с пониманием работы оператора 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();
			}
		}
	}
}


Последний раз редактировалось goldlider; 13.11.2011 в 23:43.