是否可以通过JSFL访问as3函数和变量?

时间:2014-10-03 14:06:35

标签: actionscript-3 flash jsfl

我正在编写一个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导出文件来更加笨重的方式,但我觉得如果这种方式有效,它可能更优雅,我不必是提示每帧放置文件的位置。

1 个答案:

答案 0 :(得分:0)

您可以将swf文件嵌入custom Flash IDE panel,然后通过外部接口进行通信,或通过MMExecute()方法直接从AS3调用JSFL代码。如果工厂要用JSFL做很多工作,那么考虑阅读Keith Peter's book Extending FlashMX 2004。这本书虽然陈旧,但仍然非常好,而且不会过时。