Ошибка следующая: 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");
}
}
}
}