我正在编写一个JSFL脚本来为flash动画的每个主要部分导出一组png文件。为此,我需要访问Flash文件的Main.as类中的函数和变量。 JSFL的文档在网上非常稀少,我无法判断这是否可行。这就是我所拥有的:
var docs = fl.documents;
for(var i = 0; i < docs.length; i++)
{
//loop through everything and turn off compression for max quality
var libItems = docs[i].library.items;
for (j = 0; j < libItems.length; j++){
if(libItems[j].itemType == "bitmap"){
libItems[j].allowSmoothing = true;
libItems[j].compressionType = "lossless";
}
}
//the variable adStages is an array of functions in the as3 class
//this way of trying to access the array doesn't work
for(k = 0; k<docs[i].adStages.length; k++){
//here I need to run function adStages[k] to move the animation on
//to the next frame to capture
docs[i].exportPNG("file:///Users/Graeme/Desktop/"+ docs[i].name + k,true, true);
}
}
我知道我可以通过扩展Main.as文件并使用as3corelib PNGEncoder导出文件来更加笨重的方式,但我觉得如果这种方式有效,它可能更优雅,我不必是提示每帧放置文件的位置。
答案 0 :(得分:0)
您可以将swf文件嵌入custom Flash IDE panel,然后通过外部接口进行通信,或通过MMExecute()方法直接从AS3调用JSFL代码。如果工厂要用JSFL做很多工作,那么考虑阅读Keith Peter's book Extending FlashMX 2004。这本书虽然陈旧,但仍然非常好,而且不会过时。