我正在尝试让 jsfl 脚本将视频导入我的 .fla 项目并自动将整个内容导出为 .swf 导入视频时是否可以禁用视频向导?我不想每次都手动确认所有选项。视频为 .flv 格式,如果这有什么不同的话
1 回答
AFAIK 你不能直接绕过 FLV 导入对话框(使用 JSFL API)。
我尝试使用Sikuli脚本自动执行 FLV 导入向导。该脚本可以使用未记录的FLfile.runCommandLine()从 JSFL 运行。
我正在使用 OSX,所以我不确定下一部分是否也适用于 Windows。如果我直接运行 sikuli + 脚本:
FLfile.runCommandLine("/Applications/Sikuli-IDE.app/Contents/MacOS/JavaApplicationStub /Users/george/Documents/sikuli/importFLV.skl");
Flash 将等待它运行然后继续导入有问题的 FLV。Sikuli 脚本将超时,因为导入 FLV 对话框永远不会出现。
不过,我可以运行这个:
FLfile.runCommandLine("open -a /Applications/Sikuli-IDE.app/Contents/MacOS/JavaApplicationStub /Users/george/Documents/sikuli/importFLV.skl");
这似乎打开了应用程序的一个窗口并异步运行脚本,这很棒。然后我运行导入。sikuli 脚本:
- 等待淡出(失焦)对话框
- 点击获得焦点
- 单击在 SWF 中嵌入 FLV 并在时间线中播放选项
- 等待选择正确选项的对话框
- 点击继续
- 等待下一个屏幕
- 点击继续
- 等待下一个屏幕
- 点击完成
此外,在我的机器上,当我打开 SikuliIDE(没有特定脚本)并最小化时,该脚本始终有效。
导入视频的完整测试脚本如下所示:
var doc = fl.getDocumentDOM();
FLfile.runCommandLine("open -a /Applications/Sikuli-IDE.app/Contents/MacOS/JavaApplicationStub /Users/george/Documents/sikuli/importFLV.skl");
var path = FLfile.platformPathToURI('Users/george/Desktop/cuePointTest_1.flv');
doc.importFile(path);
您可以在此处找到运行脚本的记录。在我运行 JSFL 脚本后,其余的点击由 Sikuli 处理。您还可以为我的设置下载源脚本和Sikuli 可执行脚本,但我想您的设置会有所不同。Sikuli 易于使用:输入命令,转到您的应用程序,然后按 CMD/Ctrl + Shift + 2 获取快照并继续。
如果这对您有用,那么您可能可以修改 sikuli 脚本以等待一段时间来点击序列中的下一个视频,同时 Flash 加载一个新文档。应该有其他解决方法来管理视频列表,但如果此解决方案适用于您的设置,那就有意义了。