Автоматизация создания проектов Flash / AS3 - PullRequest
0 голосов
/ 11 июля 2011

Моя цель - создать программу flash / as3, которая будет извлекать несколько наборов данных (изображений и текстов) из базы данных, а также компилировать и сохранять проект флэш-видео для каждого из них. Что может быть лучшим способом сделать эту работу? Я проверил, но не смог найти функцию, которая опубликовала бы проект flash в его текущем состоянии, поэтому я не думаю, что смогу выполнить весь процесс в одном файле flash / as3. Моя единственная другая возможность - это заставить какую-то другую программу / пакетный файл позаботиться о запросе к базе данных и компиляции нескольких фильмов flash / as3, запустив программу flash и передав ей параметры данных, необходимые для построения 1 полного проекта для 1 набор данных. Есть ли программа, которая может помочь мне автоматически создавать файлы .swf? Можно ли даже передать в параметрах init проект flash / as3? Любые мысли или идеи по этому поводу будет принята с благодарностью:)!

1 Ответ

2 голосов
/ 11 июля 2011

Я не уверен, что полностью понял ваш вопрос, но вы можете использовать компилятор командной строки mxmlc.exe из Flex SDK для динамической компиляции вашего проекта Flash.

Вы можете сгенерировать код (вместе с вашим приложением) для вашего флэш-приложения в виде файла .as, где вы можете использовать операторы встраивания для ваших изображений и строковые переменные для вашего текста.Этот сгенерированный основной класс должен использовать код из другого класса для обработки этих «динамических данных».Затем передайте этот сгенерированный класс компилятору в качестве начальной точки для вашего приложения Flash, и вы получите .swf в качестве результата.

Edit

Вот пример статического класса, который обрабатывает динамическийdata.

package  
{
    import flash.display.Sprite;
    import flash.text.TextField;

    public class Base extends Sprite
    {

        public function Base() 
        {
        }

        public function init(dyn:Main) : void
        {
            // add a new instance of the embedded image
            addChild( new dyn.DynamicImage1() );
            // add a new text field with the dynmaic text
            var text:TextField = new TextField();
            text.text = dyn.DynmaicText1;
        }

    }

}

А вот пример для сгенерированного основного класса

package 
{
    import flash.display.Sprite;
    import flash.events.Event;

    public class Main extends Sprite 
    {

        [Embed(source = '../relative/path/to/dynamic/image.png')]
        public var DynamicImage1:Class;

        public var DynmaicText1:String = "This is directly from Database";

        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void 
        {
            var base:Base = addChild(new Base()) as Base;
            base.init(this);
        }

    }

}

Теперь передайте компилятору Main в качестве начальной точки.

В общем, это всего лишь простой пример, и его можно обобщить, используя массивы, Vector<T>, интерфейсы и т. Д.

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