Код программы Virtual Zoo ActionScript 

 

 

Листинг 6.3 демонстрирует код класса VirtualZoo — основного класса  

программы. 

Листинг 6.3. Класс VirtualZoo 

package zoo { 

import flash.display.Sprite; 

public class VirtualZoo extends Sprite { 

private var pet; 

public function VirtualZoo ( ) { 

pet = new Virtual Pet("Stan"); 

pet.eat(new Apple( )); 

pet.eat(new Sushi( )); 

Листинг 6.4 демонстрирует код класса Virtual Pet, экземпляры которого  

представляют животных в зоопарке. 

Листинг 6.4. Класс VirtualPet 

package zoo { 

import flash.utils.setlnterval ; 

import flash.utils.clearlnterval; 

internal class VirtualPet { 

private static var maxNameLength = 20; 

private static var maxCalories = 2000; 

private static var caloriesPerSecond = 100; 

private var petName; 

private var currentCalories = VirtualPet.maxCalories/2; 

private var digestlntervallD; 

public function VirtualPet (name) { 

setName(name); 

digestlntervallD = setlnterval(digest, 1000); 

public function eat (foodltem) { 

if (currentCalories == 0) { 

trace(getName( ) + " is dead. You can\'t feed it."); 

return; 

if (foodltem is Apple) { 

if (foodltem.hasWorm( )) { 

traceCThe " + foodltem.getName( ) + " had a worm.." + getName( ) 

 

+ " didn\'t eat it."); 

return; 

var newCurrentCalories = currentCalories + foodItem.getCalories( ); 

if (newCurrentCalories > VirtualPet.maxCalories) { 

currentCalories = VirtualPet.maxCalories; 

} else { 

currentCalories = newCurrentCalories; 

trace(getName( ) + " ate some " + foodItem.getName( ) + "." 

+ " It now has " + currentCalories + " calories remaining."); 

public function getHunger ( ) { 

return currentCalories / VirtualPet.maxCalories; 

public function setName (newName) { 

// Если длина заданного нового имени больше maxNameLength символов... 

if (newName.length > Virtual Pet.maxNameLength) { 

// ...обрезать имя 

newName = newName.substr@, Virtual Pet.maxNameLength); 

} else if (newName == "") { 

// ...в противном случае, если заданное новое имя является 

// пустой строкой, завершить выполнение метода, не изменяя 

// значения переменной petName 

return; 

// Присвоить новое проверенное имя переменной petName 

petName = newName; 

public function getName ( ) { 

return petName; 

private function digest ( ) { 

// Если в результате потребления очередной порции калорий 

// значение переменной currentCalories животного 

// станет равным 0 или меньше... 

if (currentCalories - Virtual Pet.caloriesPerSecond <= 0) { 

// ...прекратить вызов метода digest( ) 

clearlnterval(digestlnterval ID); 

// После чего очистить желудок животного 

currentCalories = 0; 

// и сообщить о смерти животного 

trace(getName( ) + " has died."); 

} else { 

 

// ...иначе употребить оговоренное количество калорий 

currentCalories -= Virtual Pet.caloriesPerSecond; 

// и сообщить о новом состоянии животного 

trace(getName( ) + " digested some food. It now has " 

+ currentCalories + " calories remaining."); 

Листинг 6.5 демонстрирует код класса Food, являющегося суперклассом для  

различных видов пищи, принимаемой животными. 

Листинг 6.5. Класс Food 

package zoo { 

public class Food { 

private var calories; 

private var name; 

public function Food (initialCalories) { 

setCalories(initial Calories); 

public function getCalories ( ) { 

return calories; 

public function setCalories (newCalories) { 

calories = newCalories; 

public function getName ( ) { 

return name; 

public function setName (newName) { 

name = newName: 

Листинг 6.6 демонстрирует код класса Apple, представляющего конкретный вид 

пищи, принимаемой животными. 

Листинг 6.6. Класс Apple 

package zoo { 

public class Apple extends Food { 

private static var DEFAULT_CALORIES = 100; 

private var wormlnApple; 

public function Apple (initialCalories = 0) { 

if (initialCalories <= 0) { 

 

initialCalories = Apple.DEFAULT_CALORIES; 

super(initialCalories); 

wormlnApple = Math.random( ) >= .5; 

setNameC"Apple"): 

public function hasWorm ( ) { 

return wormlnApple; 

Наконец, листинг 6.7 демонстрирует код класса Sushi, также представляющего 

конкретный вид пищи, принимаемой животными. 

Листинг 6.7. Класс Sushi 

package zoo { 

public class Sushi extends Food { 

private static var DEFAULT_CALORIES = 500: 

public function Sushi (initialCalories = 0) { 

if (initialCalories <= 0) { 

initialCalories = Sushi .DEFAULT_CALORIES; 

super(initialCalories): 

setNameCSushi"): 




BACK NEXT

Сайт является частным собранием материалов и представляет собой любительский информационно-образовательный ресурс. Вся информация получена из открытых источников. Администрация не претендует на авторство использованных материалов. Все права принадлежат их правообладателям