Связывание символов в ActionScript 3 / Flash CS5 - PullRequest
1 голос
/ 01 мая 2011

Я новичок во Flash / ActionScript и столкнулся с некоторыми проблемами при создании собственного базового класса для некоторых из моих символов.

У меня есть флэш-файл с несколькими планетами в нем, иЯ хочу сохранить некоторую информацию о каждой планете, поэтому я создал класс Planet в файле actionScript с такими вещами, как минимальная и максимальная температура для каждой планеты.

В моем основном флэш-файле у меня есть символ, созданный для каждой планеты с индивидуальным изображением, и каждая планета имеет разные анимации.То, что я хочу сделать, это установить класс каждого из этих символов на планету, я изначально сделал это, просто изменив связь в Библиотеке на Планету, но это сработало только для одного символа, как только я изменил его на другой, он перестал работать, это не позволит вам установить их в тот же класс.Поэтому я попытался щелкнуть по нему правой кнопкой мыши и перейти к свойствам и установить «экспорт для ActionScript», затем я назову класс «Меркурий» или «Венера» и установить базовый класс на «Планета» (планета расширяет мувиклип).Это заверяет меня, что даже если он не может найти Венеру, он сгенерирует ее для меня во время экспорта.Я нажимаю command + enter, и это приводит к следующим ошибкам времени компиляции:

../Main.as, Line 9  1046: Type was not found or was not a compile-time constant: Venus.

и

..Main.as, Line 31  1046: Type was not found or was not a compile-time constant: Mercury.

Когда он работал только с 1 классом, он создавал экземпляр Planetс конструктором по умолчанию, а затем в методе Main я бы вызвал функцию 'initialize' для этого класса, которая позволила бы мне установить переменные экземпляра и обработчики событий для использования в дальнейшем.Мне просто нужно знать, как заставить Flash Call создавать больше экземпляров Планеты для других моих символов, не объединяя их в одну вещь.

Любые советы будут оценены!Благодарю.

1 Ответ

1 голос
/ 01 мая 2011

Ваш вопрос был немного запутанным; однако кажется, что вы хотите создать базовый класс "Планета", и другие классы, такие как Меркурий и Венера, наследуют от него свойства. Отсюда вы можете настроить символы вашей библиотеки, чтобы использовать Plant в качестве базового класса. Вот как вы могли бы сделать это:

Базовый класс:

package
{
    import flash.display.MovieClip;

    public class Planet extends MovieClip
    {
        // vars
        public var temperature:Number;
        public var radius:Number;
    }
}

Классы для ваших реальных планет (нужен один для каждой планеты):

package
{
    public class Venus extends Planet
    {
        /**
         * Constructor
         */
        public function Venus()
        {
            // set properties here
            temperature = 900;
            radius = 12.93;
        }
    }
}

Если вы создадите эти файлы, то все должно работать нормально.

...