![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 25
|
Ошибка следующая: Line 57, 1083: Syntax error: else is unexpected.
Кто знает в чём проблема, помогите, пожалуйста. Чтобы проще найти место ошибки, то она в функции setName, в этой строчке: else if (newName == ""){ После этой строчки идёт комментарий: // ... в противном случае, если заданное... 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"); } } } } |
|
|||||
if (newName.length > VirtualPet.maxNameLength) { // ... обрезать имя, используя собственный метод String.subst() Возвращающий указанную часть строки на которой выполяется данный метод newName = newName.substr(0, VirtualPet.maxNameLength); else if (newName == "") { // ... в противном случае, если заданное имя является пустой строкой, завершить выполнение метода не изменяя значения переменной petName return; } // Присвоить новое проверенное имя переменной petName petName = newName; } Я читал Мука кусочками, сначала начало, отмечал особенности синтаксиса, по сравнению с as1/as2, затем пропуская отдельные главы, возвращаясь к ним только в процессе нужды. Думаю, обычно человек так и поступает, а не читает все подряд, ничего не запоминая оО
__________________
тут я |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 25
|
Да спасибо, там не было этой скобочки! Но поставив её появились 3 ошибки, вот так всегда, одну исправляешь, появляется 10
Цитата:
Добавлено через 4 минуты Цитата:
|
|
|||||
|
Регистрация: Apr 2010
Сообщений: 25
|
А вот собственно и ошибки:
1. Line 43, 1120: Access of undefined property currentCaloies. 2. Line 74, 1119: Access of possibly undefined property caloriesPerSecond through a reference with static type Class. 3. Line 83, 1119: Access of possibly undefined property caloriesPerSecond through a reference with static type Class. Первая ошибка находится перед функцией getHunger, вторая и третья ошибка находятся в функции digest. Спасибо Добавлено через 3 минуты Да, я когда первый раз читал до 7 главы, он предлагал перескочить, ну если мол вы не знакомы, то сначала ознакомьтесь с той то главой, я перескочил, второй раз не стал этого делать, может дальше и придётся, не знаю, но там видно будет, главное осилить!!! |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 25
|
Цитата:
в книге private static написано. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|