| Беларусь, рогачёв |
Опубликован: 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 и в нем переопределена функция управления дверьми. С этой точки зрения каждый объект во Флэше - это класс (поскольку этот объект можно скопировать и наследовать от него другие объекты ).