Javascript 作为字符串返回的数组
在使用AdobeExtensionforAfterEffects进行实验时,我使用JSX与软件交互,并将信息发送到一个JS文件,该文件将更新HTMLUI面板 此时,我正在尝试Javascript 作为字符串返回的数组,javascript,arrays,string,adobe,extendscript,Javascript,Arrays,String,Adobe,Extendscript,在使用AdobeExtensionforAfterEffects进行实验时,我使用JSX与软件交互,并将信息发送到一个JS文件,该文件将更新HTMLUI面板 此时,我正在尝试console.log从软件返回的一些信息(组成和层名称) 我的问题是,我可以在JSX端使用的字符串数组,一旦在我的JS工作表中返回,就会作为字符串接收 以下是流程: main.js (function() { 'use strict'; var csInterface = new CSInterface();
console.log
从软件返回的一些信息(组成和层名称)
我的问题是,我可以在JSX端使用的字符串数组,一旦在我的JS工作表中返回,就会作为字符串接收
以下是流程:
main.js
(function() {
'use strict';
var csInterface = new CSInterface();
function init() {
themeManager.init();
$("#btn_test").click(function() {
csInterface.evalScript('main()', function(res) {
console.log(typeof(res));
console.log(res);
});
});
}
init();
}());
hostscript.jsx
function main() {
var project = app.project;
var comp = project.activeItem;
var layers = comp.selectedLayers;
var layersNames = [];
for (var i = 0; i < layers.length; i++) {
layersNames.push(layers[i].name);
}
return layersNames;
}
函数main(){
var project=app.project;
var comp=project.activeItem;
变量层=复合选定层;
var layersNames=[];
对于(变量i=0;i
因此,在我的控制台中,我收到两个信息:
- typeof是
字符串
- 日志记录资源为
name1、name2
有什么想法吗?我在Stack Overflow或任何其他Adobe相关论坛上都找不到有针对性的答案。return[layersNames]
将在另一个数组中返回您的数组。删除括号无效,它仍然作为字符串返回。您如何知道它是作为字符串返回的?哦,等等,我明白了。这可能与API的工作方式有关。据我所知,evalScript()
希望脚本返回字符串。您可以对数组进行JSON编码,然后对其进行解码。