海盗 - 回写一个javascript数组

时间:2015-05-22 08:14:55

标签: javascript arrays pixate

有一点点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" ans" nestLayers"由Pixate提供。如果我尝试运行我的代码,那么" getSelectedLayers"似乎工作(警报功能返回所选图层的数组)。创建新图层也有效。问题是,在启动" nestLayers"函数,在嵌套第一个选定的图层后,脚本在我的最后一行停止并出现错误" undefined不是函数" ...

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

1 个答案:

答案 0 :(得分:0)

您的nestLayers调用存在两个问题:它期望所有图层都作为参数(不是数组),并且您传递的是字符串数组,而不是图层对象(请参阅此处的文档:{{3 }})。

正确的操作应如下所示:

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使用提供的数组作为参数调用函数(http://www.pixate.com/docs/actions/#nestlayer),我只是将组图层和其余图层连接成一个数组。