Руководство по actionscript. часть 7, стр. 027
I Код для программы «Зоопарк» можно загрузить по адресу http://www. moock. org/eas3/
*v 4 т examples.
Обратите внимание, что код в этой версии виртуального зоопарка подвергся структурным изменениям, отражающим реальные шаблоны проектирования. В частности, добавлены два новых класса: FoodButton, представляющий простую интерактивную кнопку-текст, и Virtual Pet View, обеспечивающий графическое представление экземпляров класса VirtualPet.
Класс VirtualZoo претерпел следующие значительные изменения:
? теперь он создает экземпляр класса VirtualPetView, используемый для отображения животного на экране;
? он ожидает, пока экземпляр класса VirtualPetView загрузит необходимые изображения, прежде чем приступить к имитации животного.
Класс VirtualPet претерпел следующие значительные изменения:
? константы VirtualPet. PETSTATE_FULL, VirtualPet. PETSTATE_HUNGRY, VirtualPet. PETSTATE_STARVING и VirtualPet. PETSTATE_DEAD представляют физическое состояние животного;
? переменная экземпляра petstate хранит текущее физическое состояние животного;
? приемники событий уведомляются об изменениях в физическом состоянии животного посредством события VirtualPet. STATE CHANGE;
? приемники событий уведомляются об изменениях в имени животного посредством события VirtualPet. NAME_CHANGE;
? чтобы изменить количество калорий в желудке животного, класс VirtualPet использует метод setCalories ( ); при необходимости метод setCalories ( ) изменяет состояние животного с помощью метода setPetState ( );
? физическое состояние животного изменяется методом setPetState ( ), который генерирует соответствующее событие VirtualPet. STATE CHANGE;
? для вызова метода digest ( ) класс VirtualPet использует объект Timer вместо метода setlnterval ( );
? жизненный цикл (переваривание пищи) каждого объекта VirtualPet может начинаться и завершаться с помощью методов start ( ) и stop ( );
? метод digest ( ) больше не определяет, умрет ли животное, если оно не будет принимать пищу; он делегирует эту ответственность методу setCalories( );
? формальный метод die ( ) деактивирует объекты VirtualPet.