我正在边做边学编程,只是意识到我缺少一些有关循环的基础知识。
当前,我正在创建一个Sketch插件(设计人员程序)。 基本上,我有一个符号库,应根据每个符号的单独规则将其放置在画板上。从API中,我获得了这些符号在JSON中应位于的位置。 这就是我的JSON的结构:
{
boundingBox = {
height = "0.109773919";
left = "0.0224986672";
top = "0.005579207";
width = "0.9701756";
};
probability = "0.9641495";
tagId = "013a0b7b-2b1d-4c18-8de7-fd37c91aa513";
tagName = navtop;
}
当前功能:将tagNames与我的本地符号库(创建符号)匹配。现在,我想添加另一个函数“ positionInArtboard”。
var matchSymbol = function(data) {
for (var i = 0; i < data.predictions.length; i++) {
var percentage = parseFloat(data.predictions[i].probability);
if (data.predictions[i].probability > 0.5) {
createSymbol(data.predictions[i].tagName);
positionInArtboard(data.predictions[i].tagName);
}
}
}
function positionInArtboard (tagName, x, y) {
var tabbars = document.getLayersNamed("tabbar")
var tabbar = tabbars[0];
var tabbarFrame = new sketch.Rectangle(tabbar.frame);
tabbarFrame.x = 0;
tabbarFrame.y = 618;
tabbar.frame = tabbarFrame
var navtops = document.getLayersNamed("navtop")
var navtop = navtops[0];
var navtopFrame = new sketch.Rectangle(navtop.frame);
navtopFrame.x = 0;
navtopFrame.y = 0;
navtop.frame = navtopFrame;
}
上面的代码工作得很好,但是将来我将基于JSON响应为某些元素设置动态规则:
var buttons = document.getLayersNamed("button")
var button = buttons[0];
var buttonFrame = new sketch.Rectangle(button.frame);
navtopFrame.x = data.predictions[i].boundingBox.left * 375;
navtopFrame.y = data.predictions[i].boundingBox.top * 667;
navtop.frame = navtopFrame;
**我如何才能更好地结合这两个功能,并同时传递JSON响应中的数据?如何保持每个对象个体的框架规则,而不必一直重复该块? **
对于这个基本问题,我感到抱歉,如果有人能推荐我可以阅读更多有关这些特定操作的资源,那也很好。
非常感谢您! 最好,C