有一点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"createlayer"one_answers"nestLayers"是由Pixate提供的。如果我尝试运行我的代码,"getSelectedLayers"似乎正在工作(警报函数返回所选层的数组)。创建新层也可以。问题是,在开始"nestLayers"函数后,在嵌套第一个选定层后,脚本在我的最后一行出现错误"未定义不是函数"…
任何帮助都非常感激-谢谢!
您的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),我只是将组层和其余层连接到单个数组中。