海盗——写回一个javascript数组
Pirate – write back a javascript array
有点问题javascript。 Pixate 是 UI 设计工具,可让您在 JS 中构建自定义操作。我正在尝试用几行代码构建一个小的 JS 动作,但显然我正在监督一些明显的事情(抱歉,我不是真正的编码员)。到目前为止,这是我的脚本:
var layers = getSelectedLayers();
var erg = "";
for (var elem in layers) {
erg += layers[elem] + ", ";
}
alert(erg);
var group = createLayer("MyGroup");
group.y = group.x = 0;
group.width = Screen.width;;
group.height = Screen.height;;
group.backgroundColor = 'transparent';
nestLayers(group, erg);
命令 "getSelectedLayers" "createLayers" 和 "nestLayers" 由 Pixate 提供。如果我尝试 运行 我的代码,"getSelectedLayers" 似乎在工作(警报功能返回所选图层的数组)。创建新层也可以。问题是,在启动 "nestLayers" 函数后,在嵌套第一个选定层后,脚本停止并在我的最后一行出现错误 "undefined is not a function"...
非常感谢任何帮助 - 谢谢!
您的 nestLayers
调用有两个问题:它需要所有图层作为参数(而不是数组),并且您传递的是字符串数组,而不是图层对象(请参阅此处的文档:http://www.pixate.com/docs/actions/#nestlayer).
正确的操作应该是这样的:
var layers = getSelectedLayers();
var group = createLayer("MyGroup");
group.y = group.x = 0;
group.width = Screen.width;
group.height = Screen.height;
group.backgroundColor = 'transparent';
nestLayers.apply(this, [].concat(group, layers));
apply
使用提供的数组作为参数调用一个函数 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply),我只是将图层组和其余图层连接成一个数组。
有点问题javascript。 Pixate 是 UI 设计工具,可让您在 JS 中构建自定义操作。我正在尝试用几行代码构建一个小的 JS 动作,但显然我正在监督一些明显的事情(抱歉,我不是真正的编码员)。到目前为止,这是我的脚本:
var layers = getSelectedLayers();
var erg = "";
for (var elem in layers) {
erg += layers[elem] + ", ";
}
alert(erg);
var group = createLayer("MyGroup");
group.y = group.x = 0;
group.width = Screen.width;;
group.height = Screen.height;;
group.backgroundColor = 'transparent';
nestLayers(group, erg);
命令 "getSelectedLayers" "createLayers" 和 "nestLayers" 由 Pixate 提供。如果我尝试 运行 我的代码,"getSelectedLayers" 似乎在工作(警报功能返回所选图层的数组)。创建新层也可以。问题是,在启动 "nestLayers" 函数后,在嵌套第一个选定层后,脚本停止并在我的最后一行出现错误 "undefined is not a function"...
非常感谢任何帮助 - 谢谢!
您的 nestLayers
调用有两个问题:它需要所有图层作为参数(而不是数组),并且您传递的是字符串数组,而不是图层对象(请参阅此处的文档:http://www.pixate.com/docs/actions/#nestlayer).
正确的操作应该是这样的:
var layers = getSelectedLayers();
var group = createLayer("MyGroup");
group.y = group.x = 0;
group.width = Screen.width;
group.height = Screen.height;
group.backgroundColor = 'transparent';
nestLayers.apply(this, [].concat(group, layers));
apply
使用提供的数组作为参数调用一个函数 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply),我只是将图层组和其余图层连接成一个数组。