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