0

有一点 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);

Pixate 提供命令“getSelectedLayers”、“createLayers”和“nestLayers”。如果我尝试运行我的代码,“getSelectedLayers”似乎正在工作(警报函数返回一个选定图层的数组)。创建新图层也可以。问题是,在启动“nestLayers”函数后,在嵌套第一个选定层后,脚本停止并在我的最后一行出现错误“未定义不是函数”......

非常感谢任何帮助 - 谢谢!

4

1 回答 1

0

您的调用有两个问题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),我只是连接组层和其余的层到一个数组中。

于 2015-05-27T15:49:40.967 回答