Виталий Т.
168 сообщений
#15 лет назад
Привет всем.
Столкнулся с проблемой, когда компилирую файлы, ничего не происходит, пустой экран после компиляции в FLASH CS4.
А во Flex через дебаг пишет что 3 строчки неизвестных.

VirtualZoo.as
package zoo {
import flash.display.Sprite;

public class VirtualZoo extends Sprite {

private var pet;

public function VirtualZoo () {

pet = new VirtualPet("Stan");

pet.eat(new Apple( ));
pet.eat(new Sushi( ));

}
}
}


VirtualPet.as
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 caloriesPerSecond = 100;
private var digestIntervalID;

private var petName;
private currentCalories = VirtualPet.maxCalories/2;

public function VirtualPet (name){
setName(name);

digestIntervalID = setInterval(digest, 1000);
}

public function eat (foodItem) {
if (currentCalories == 0)
{
trace(getName() + " Животное умерло. ");
return;
} else {
if (foodItem is Apple) {
if (foodItem.hasWorm()) {
trace(foodItem.getName() + " червивое" + getName() + " животное есть отказывается. " );
return;
}
}
var newCurrentCalories = currentCalories + foodItem.getCalories();

if (newCurrentCalories > VirtualPet.maxCalories ) {
CurrentCalories = VirtualPet.maxCalories;
} else {
CurrentCalories = newCurrentCalories;
}

trace(getName() + " " + foodItems.getName() + "." + " Съест сейчас еду и наберёт " + currentCalories + " калорий. ");
}
}

public function getHunger() {
return currentCalories / VirtualPet.maxCalories;
}


public function setName (newName) {
if (newName.length > VirtualSet.maxNameLength) {
newName = newName.substr(0, VirtualPet.maxNameLength);
} else if (newName == "") {
return;
}
petName = newName;
}



public function getName() {
return petName;
}

private function digest() {

if (currentCalories -= VirtualPet.caloriesPerSecond <= 0)
{
clearInterval(digestIntervalID);
currentCalories = 0;
trace(getName() + " Животное умерло. ");
} else {
currentCalories -= VirtualPet.caloriesPerSecond;

trace(getName() + " животное потеряло " + currentCalories + " калорий. ");
}
}



}

public class Food {
private var calories;
private var name;

public function Food(initialCalories){
setCalories(initialCalories);
}

public function getColories() {
return calories;
}

public function setCalories(newCalories) {
calories = newCalories;
}

public function getName () {
return name;
}

public function setName (newName) {
name = newName;
}
}

public class Apple extends Food {
private static var DEFAULT_CALORIES = 100;
private var wormInApple;

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

public function hasWorm() {
return wormInApple;
}
public function Apple(initialCalories = 0) {
if (initialCalories <= 0) {
initialColories = Apple.DEFAULT_CALORIES;
}
super(initialCalories);

setName("Apple");
}
}

public class Sushi extends Food {
private static var DEFAULT_CALORIES = 500;

public function Sushi(initialCalories = 0) {
if (initialCalories <= 0) {
initialColories = Sushi.DEFAULT_CALORIES;
}
super(initialCalories);

setName("Sushi");

}
}


}


Помогите, может найдёте ошибку, или попробуйте скомпилить, может я не так что-то делаю.
Дмитрий Очеретяный
4 сообщения
#15 лет назад
А что ж на экране должно быть? Вы же никаких визуальных объектов не создаете...
Виталий Т.
168 сообщений
#15 лет назад
Цитата ("flexoft"):
А что ж на экране должно быть? Вы же никаких визуальных объектов не создаете...


Мне нужно чтобы всё что происходит выводилось в "Вывод" , но этого не происходит.
Сергей Ф.
83 сообщения
#15 лет назад
Это пример из книги, помню его
Как правильно заметил flexoft, тут нет визуального отображения объектов, результат работы программы выводится в консоль, через trace
Виталий Т.
168 сообщений
#15 лет назад
Цитата ("filipchuk"):
Это пример из книги, помню его
Как правильно заметил flexoft, тут нет визуального отображения объектов, результат работы программы выводится в консоль, через trace


Да,но он не выводит.
Виталий Т.
168 сообщений
#15 лет назад
Если обвести классы и нажать Debug Movie выводит в консоль
Цитата:
Attemping to launch and connect to Player using URL C:\Users\виталик\Desktop\VirtualZoo\src\VirtualZoo.swf
C:\Users\виталик\Desktop\VirtualZoo\src\VirtualZoo.swf - 1791 bytes after decompression
Debug session terminated.
Константинович С.
658 сообщений
#15 лет назад
Это такая геморойная книга
до сих пор не могу понять о чем она
Олег Томенко
257 сообщений
#15 лет назад
Цитата ("snoop15"):
Если обвести классы и нажать Debug Movie выводит в консоль
Цитата:
Attemping to launch and connect to Player using URL C:\Users\виталик\Desktop\VirtualZoo\src\VirtualZoo.swf
C:\Users\виталик\Desktop\VirtualZoo\src\VirtualZoo.swf - 1791 bytes after decompression
Debug session terminated.


Это понятно. Это значит, что сессия начата и окончена.
Посмотрите, скорее всего забыли снять галочку в публикации «Omit trace Actions».

Кстати, какой у вас Документ класс? VirtualZoo ?
Константинович С.
658 сообщений
#15 лет назад
Это по делу "Олег"
курить бросай
Олег Томенко
257 сообщений
#15 лет назад
Бросил уже.
Виталий Т.
168 сообщений
#15 лет назад
Цитата ("olegTomenko"):
Цитата ("snoop15"):
Если обвести классы и нажать Debug Movie выводит в консоль
Цитата:
Attemping to launch and connect to Player using URL C:\Users\виталик\Desktop\VirtualZoo\src\VirtualZoo.swf
C:\Users\виталик\Desktop\VirtualZoo\src\VirtualZoo.swf - 1791 bytes after decompression
Debug session terminated.


Это понятно. Это значит, что сессия начата и окончена.
Посмотрите, скорее всего забыли снять галочку в публикации «Omit trace Actions».

Кстати, какой у вас Документ класс? VirtualZoo ?


Документ класс zoo.VirtualZoo

А где находиться публикация %) ?
Олег Томенко
257 сообщений
#15 лет назад
Ctrl + Shift + F12
Виталий Т.
168 сообщений
#15 лет назад
Цитата ("snoop15"):
Это понятно. Это значит, что сессия начата и окончена.
Посмотрите, скорее всего забыли снять галочку в публикации «Omit trace Actions».


Нет, она снята. Сам уже нашёл где публикация)
Виталий Т.
168 сообщений
#15 лет назад
В чём может быть всё таки дело?(
Максим Б.
2206 сообщений
#15 лет назад
Цитата ("sergannd_snz"):
Это такая геморойная книга
до сих пор не могу понять о чем она


Это IMHO лучшая из книг по AS3. Называется Essential.ActionScript.3.0 издательства O'Reilly.
Если считаешь что она "геморойная", советую глянуть ActionScript 3.0 Design Patterns, того же издательства, поймешь что такое настоящий "геморой"
Максим Б.
2206 сообщений
#15 лет назад
Цитата ("snoop15"):
В чём может быть всё таки дело?(


Ну а ошибки в output выводит какие нибудь?
Константинович С.
658 сообщений
#15 лет назад
Если лучшая буду читать
Виталий Т.
168 сообщений
#15 лет назад
Цитата ("Pixorama"):
Цитата ("snoop15"):
В чём может быть всё таки дело?(


Ну а ошибки в output выводит какие нибудь?


Нажимаю Test Movie , output вообще ничего не пишет, только делает файл .SWF
Олег Томенко
257 сообщений
#15 лет назад
Вышлите мне исходники на ***, я посмотрю.
Леонид З.
97 сообщений
#15 лет назад
Омг... Внимательнее надо быть.


private currentCalories = VirtualPet.maxCalories/2;


CurrentCalories = newCurrentCalories;


trace(getName() + " " + foodItems.getName() + "." 


if (newName.length > VirtualSet.maxNameLength) {


if (currentCalories -= VirtualPet.caloriesPerSecond <= 0)