AS3 Ошибка
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».
Нет, она снята. Сам уже нашёл где публикация)
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)