如何从actionscript引用Flash文件自己的文件名?

时间:2014-02-03 06:46:24

标签: actionscript-3 flash

在我们的管道中,我们最终使用Toolkit for CreateJS发布HTML5。然而,让我们进入HTML5的步骤之一包括发布输出一些Javascript代码的SWF。我主要使用JSFL设法自动执行此操作。然而,目前我们的艺术家必须在时间轴上找到一行AS3并手动更改,但它会中断他们的工作流程,如果他们错过它或搞砸了它很难捕捉,所以我想自动化它也是:

Object(root).log.text +=  "        root.skillAnime189 = factory();\n";

从上面可以看出,“skillAnime189.fla”是包含此代码的.fla文件的名称。如果艺术家正在使用技能动画#189,则会出现这种情况,但如果他正在执行#304或#6或#1022(无填充),则数字会相应更改,并且他必须相应地更新该行。

所以,我想将这一行更改为:

var flaName:String = getThisFlashFileName().split(".")[0];
Object(root).log.text +=  "        root." + flaName + " = factory();\n";

但我不知道如何访问包含代码的.fla文件的名称。

1 个答案:

答案 0 :(得分:1)

获取swf名称的常用方法是解析stage.loaderInfo.url参数:

    var url:String = stage.loaderInfo.url;
    url = url.split("?")[0];    //remove query string after "?"
    var swfname:String = url.substring(url.lastIndexOf("/")+1);
    trace(swfname);

输出:

astest.swf

但是这段代码只提供swf,而不是fla,因此您需要为flas维护相同的名称并发布swfs(任何情况下通常都是同样,所以不应该是问题)