Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 03.07.2010, 18:35
armastus вне форума Посмотреть профиль Отправить личное сообщение для armastus Найти все сообщения от armastus
  № 1  
Ответить с цитированием
armastus

Регистрация: Apr 2010
Сообщений: 25
По умолчанию Ошибки при изучении книги Колина Мука (2009 год)

Ошибка следующая: Line 57, 1083: Syntax error: else is unexpected.
Кто знает в чём проблема, помогите, пожалуйста.
Чтобы проще найти место ошибки, то она в функции setName, в этой строчке: else if (newName == ""){
После этой строчки идёт комментарий: // ... в противном случае, если заданное...

Код AS3:
package zoo {
	import flash.utils.setInterval;
	import flash.utils.clearInterval;
 
	internal class VirtualPet {
		private static var maxNameLength = 20;
		private static var maxCalories = 2000;
		private static var caloriesPerSeconds = 100;
 
		private var petName;
		private var currentCalories = VirtualPet.maxCalories/2;
		private var digestIntervalID;
 
 
		public function VirtualPet(name) {
			setName(name);
			digestIntervalID = setInterval(digest, 1000);
		}
		public function eat (foodItem) {
 
			// Если это животное мертво
			if (currentCalories == 0) {
				// ... завершить метод, не изменяя значение переменной currentCalories
				trace (getName() + "is dead. You can't feed it.");
				return;
				}
 
		   // Чтобы животные не ели червивые яблоки
			if (foodItem is Apple) {
				if (foodItem.hasWorm()) {
					trace ("The" + foodItem.getName() + "had a worm. " + getName() + " didn't eat it");
					return;
				}
			}
 
			var newCurrentCalories = currentCalories + foodItem.getCalories();
 
			// Если новое предложенное калорий для данного животного больше максимально допустимого значения (то есть 2000)
			if (newCurrentCalories > VirtualPet.maxCalories) {
				// ... то присвоить переменной currentCalories максимальное значение 2000
				currentCalories = VirtualPet.maxCalories;
			}//  в противном случает увеличить значение переменной currentCalories на указанное количество калорий
			else { currentCaloies = newCurrentCalories;
			}
			trace(getName() + "ate some" + foodItem.getName() + "It now has" + currentCalories + "calories remaining");
		}
 
		// Возвращает оставшееся количество калорий у животного
		public function getHunger() {
			return currentCalories/VirtualPet.maxCalories;
		}
		public function setName(newName) {
			// Если длина заданного нового имени больше 20 символов...
			if (newName.length > VirtualPet.maxNameLength) {
				// ... обрезать имя, используя собственный метод String.subst() Возвращающий указанную часть строки на которой выполяется данный метод
				newName = newName.substr(0, VirtualPet.maxNameLength);
				else if (newName == "")	{
					// ... в противном случае, если заданное имя является пустой строкой, завершить выполнение метода не изменяя значения переменной petName
				   return;
				}
				// Присвоить новое проверенное имя переменной petName
				petName = newName;
			}
 
			// Теперь, когда мы объявили переменную petName закрытой, возвращаем значение переменной
			public function getName() {
				return petName;
			}
 
		private function digest() {
			// Если в результате потребления очередной порции калорий значение переменной currentCalories животного станет равным 0 или меньше...
			if (currentCalories - VirtualPet.caloriesPerSecond <= 0) {
				// ... прекратить вызов метода digest()
				clearInterval(digestIntervalID);
				// После чего очистить желудок животного
				currentCalories = 0;
				// и сообщить о смерти животного
				trace (getName() + "has died");
			} else {
				// ...иначе употребить оговоренное количество калорий 
				currentCalories -= VirtualPet.caloriesPerSecond;
				// и сообщить о новом состоянии животного
				trace(getName() + "digest some food. It now has"
					  + currentCalories + "calories remaining");
		}
		}
	}
}

Создать новую тему   Часовой пояс GMT +4, время: 14:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.