PDA

Просмотр полной версии : должен входить подкласс "flash.display.MovieClip"


Gimli
11.06.2012, 19:56
Привет.
Почему появляется ошибка: В класс "VirtualPet" должен входить подкласс "flash.display.MovieClip", так как он связывается с символом такого же типа в библиотеке. Я же импортировал MovieClip
P.S. Flash Prof CS 5.5
package {
import flash.utils.*;
import flash.display.MovieClip;
import flash.display.Sprite;

internal class VirtualPet {;
private static var maxNameLength = 20;
private static var maxCalories = 2000;
internal var petName;
private var currentCalories = 1000;

public function VirtualPet(name) {
this.petName = name;
var digestIntervalID = setInterval(digest,1000);
}

private static var caloriesPerSecond:Number = 100;
private function digest() {
currentCalories -= caloriesPerSecond;
}

public function eat(numberofColories) {
var newcurrentCalories = currentCalories + numberofColories;
if (newcurrentCalories > VirtualPet.maxCalories) {
currentCalories = VirtualPet.maxCalories;
} else {
currentCalories = newcurrentCalories;
}
}
public function getHunger() {
return currentCalories;
}

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

Wolsh
11.06.2012, 20:02
Ваш класс привязан к символу в библиотеке, но не является наследником MovieClip.
internal class VirtualPet extends MovieClip {

Добавлено через 1 минуту
И пожалейте наши глаза: соблюдайте табуляцию в коде!

Gimli
11.06.2012, 20:18
Но в библиотеке пусто (( (или я чего-то не понимаю)
Теперь появляется ошибка: ReferenceError: Error #1065: Variable VirtualPet is not defined.

Wolsh
11.06.2012, 20:50
У Вас только этот класс? То есть Вы запускаете проект с этим классом в качестве Класса Документа?

Gimli
11.06.2012, 20:58
Да, я запускаю проект с Классом Документом ВиртуалПет. Классов всего два ВиртуалПет и ВиртуалЗу.
package
{

import flash.display.MovieClip;

public class VirtualZoo
{
private var pet;

public function VirtualZoo()
{
pet = new VirtualPet("Stan");
var oldName = pet.getName();
pet.setName("Marcos");

}

}

}

Wolsh
11.06.2012, 23:40
Вы ничего не путаете? В классе VirtualPet не упоминается зоопарк, как раз наоборот. То есть это VirtualZoo должен быть классом Документа. И расширять мувиклип, да. А зверушка не обязана его расширять, если она не класс Документа...

Gimli
12.06.2012, 00:03
поменял класс документа на ВиртуалЗу и всё заработало.)
Просто мне надо было протестировать код который был в классе ВиртуалПет, вот я и решил назначить его классом документа.
Спасибо за помощь.

zomkoner
11.03.2013, 19:14
Блин вот второй раз взялся за этот учебник и в этот раз встрял ещё раньше чем в предыдущий... почему не канает не врублюсь(((
C:\Users\Desktop\project_zomk\zoo\VirtualZoo.as, строка 1 5000: В класс "zoo.VirtualZoo" должен входить подкласс "flash.display.MovieClip", так как он связывается с символом такого же типа в библиотеке.