Во Flash, как я могу импортировать пакет, создать экземпляр класса и вызвать метод без получения ошибки? - PullRequest
0 голосов
/ 07 августа 2010

Это сводит меня с ума. Я просмотрел темы на эту тему и, кажется, НИЧЕГО не работает.

У меня есть FLA-файл со следующим кодом в кадре 1:

import TestClass;

var tstClass:TestClass = new TestClass;

tstClass.testMethod();

В прилагаемом файле AS у меня есть следующее:

package
{
    public class TestClass
    {
        public function testMethod():void
        {
            trace("It Works!");
        }
    }

}

Я перепробовал все, что мог придумать, чтобы заставить это работать, но я продолжаю получать ошибку после ошибки во Flash. Я получаю следующие ошибки:

Scene 1, Layer 'Layer 1', Frame 5, Line 3 1180: Call to a possibly undefined method TestClass.

Scene 1, Layer 'Layer 1', Frame 5, Line 3 1046: Type was not found or was not a compile-time constant: TestClass.

Scene 1, Layer 'Layer 1', Frame 5, Line 1 1172: Definition TestClass could not be found.

Scene 1, Layer 'Layer 1', Frame 5, Line 1 1172: Definition TestClass could not be found.

Ответы [ 3 ]

2 голосов
/ 08 августа 2010

Из-за ошибки кажется, что компилятор не может найти определение вашего класса.

Дважды проверьте путь к классу и убедитесь, что структура пакета соответствует структуре вашего каталога.

Глобальный путь к классам (для каждого файла) может быть установлен из: Правка -> Настройки -> Actionscript -> Настройки Actionscript 3.0.

Конфигурация для конкретного флага может быть отредактирована из Настройки публикации -> Настройки.

Если ваши fla и TestClass.as находятся в одном каталоге, убедитесь, что у вас есть ./ (или просто .) в вашем classpath.

Также проверьте имя файла as на наличие опечаток и различий в регистре (имя должно быть точно таким же, как у вашего класса, с расширением .as)

2 голосов
/ 07 августа 2010

Вы забыли скобки:

var tstClass:TestClass = new TestClass();

P.S: Flash Builder - это в 10 раз приятнее инструмент для кодирования. И он может сотрудничать с Flash CS *.

0 голосов
/ 07 августа 2010

Вам также необходимо создать функцию создания экземпляра TestClass() в классе TestClass.

package
{
    public class TestClass
    {
        public function TestClass()
        {
            trace("class instantiated");
        }
        public function testMethod():void
        {
            trace("It Works!");
        }
    }
}

Затем используйте скобки, как в комментарии Максима Качуровского.

import TestClass;

var tstClass:TestClass = new TestClass();

tstClass.testMethod();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...