自动创建Flash / AS3项目

时间:2011-07-11 15:45:15

标签: flash actionscript-3 actionscript automation

我的目标是制作一个flash / as3程序,它可以从数据库中提取多组数据(图像和文本),并为每个数据库编译和保存一个flash视频项目。什么是最好的方法来使这项工作?我检查但是无法找到一个将Flash项目发布到当前状态的函数,所以我认为我不能在单个flash / as3文件中执行整个过程。我唯一的另一个选择是让一些其他程序/批处理文件负责查询数据库并编译多个flash / as3电影,方法是启动一个flash程序并传递它需要构建1个完整项目所需的数据参数数据集。有没有可以帮助我自动创建.swf文件的程序?甚至可以将init参数传递给flash / as3项目吗?任何关于此的想法或想法将不胜感激:)!

1 个答案:

答案 0 :(得分:2)

我不确定我是否完全理解了您的问题,但您可以使用Flex SDK中的命令行编译器mxmlc.exe动态编译您的Flash项目。

您可以将您的Flash应用程序的代码(包含您的应用程序)生成为.as文件,您可以在其中使用图像的嵌入语句和文本的字符串变量。这个生成的主类应该使用其他类的代码来处理这些“动态数据”。然后将生成的类作为Flash应用程序的起点提供给编译器,结果将得到.swf

修改

这是处理动态数据的静态类的示例。

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>和接口等等可以更加通用。