Виталий Т.
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)