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