Опубликован: 23.12.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 6:

Классы

Заменяем и дополняем поля и методы

Теперь, когда мы создали новый объект " класса " lift, мы сможем несколько изменить его. Например, заставить ездить на 16 этаж и в подвал. А также издавать звуковой сигнал при закрывании дверей. Вот та часть кода, которая эта делает:

// Копируем лифт
lift2 = newObject(lift);
	// Meняем параметры
lift2.minFloor = 0;
lift2.maxFloor = 16;
	// "Переопределение виртуальной функции"
lift2.setDoorsOpenImpl = lift2.setDoorsOpen;
lift2.setDoorsOpen = function(open){
	if (!open && this.doorsAreOpen) trace("Динь!");
	this.setDoorsOpenImpl(open);
}
	// Проверяем
trace("lift:");
lift.goto(0); // Пробуем съездить в подвал на старом лифте
trace("lift2:");
lift2.goto(0); // И на новом

На выходе получаем:

lift:
-----------
Ничего не делаем.
-----------
lift2:
-----------
Динь!
Закрываем двери.
Этаж 1
Этаж 0
Открываем двери.
-----------

Полное впечатление, что lift2 наследован от lift и в нем переопределена функция управления дверьми. С этой точки зрения каждый объект во Флэше - это класс (поскольку этот объект можно скопировать и наследовать от него другие объекты ).

алексеи федорович
алексеи федорович
Беларусь, рогачёв
Тамара Ионова
Тамара Ионова
Россия, Нижний Новгород, НГПУ, 2009