在循环中访问 coffee 脚本中数组中的其他值 (framer.js)
access other values in array in coffee script in a loop (framer.js)
您好,我对 javascript 和 CoffeeScript 还很陌生,所以我目前正在开发原型并同时学习这门语言。
除了一件重要的事情外,下面的代码块几乎完成了我想要它做的事情。任何帮助将不胜感激
categories.forEach (cat,i) ->
mainCat= categ[i] = new Layer
width:185
height:77
parent:catSelect.content
y:13
x:205*i+20
image:categories[i]
categ[i].states.add
off:
image: categories[i]
on:
image: altCat[i]
categ[i].on Events.Click, ->
categ[i].states.next("on","off")
if categ[i].states.current is "on"
print "true"
这里我有一个循环来创建类别按钮 (mainCat),它有 2 个状态,并附有单独的图像数组(categories[] 和 altCat[])。
我已将这个循环放在一个数组中,这样现在,当我单击一个类别时,我可以使用 categ[i] 检查它的状态,但这几乎是我的限制所在。
现在这基本上将我的 categ[] 数组中的对象视为多项选择,而我希望它一次只让数组中的一个对象处于 "on" 状态,一旦它在 "on" 状态下,它需要显示特定的卡片行,同时将其他行隐藏在位于单独的 layer/div.
中的另一个数组(称为卡片 [])中
即类似于:
if categ[!=i].states.current is "on"
categ[!=i].states.switch("off")
cardsRow[!=i].opacity=0
cardsRow[i].opacity=1
提前致谢!
你必须循环遍历categ
中的所有对象,然后检查它们是否与已单击的图层相同,以打开或关闭它们。
同样适用于为另一个数组中的图层设置不透明度,但是您应该使用循环的索引来查找图层:
categ[i].on Events.Click, ->
for l, index in categ
if categ[i] == l
l.states.switch("on")
cards[index].opacity = 1
else
l.states.switch("off")
cards[index].opacity = 0
可在此处找到使用此功能的完整原型:http://share.framerjs.com/2yg7ix83yv1l/
我已将图像替换为背景颜色以使图层可见。
您好,我对 javascript 和 CoffeeScript 还很陌生,所以我目前正在开发原型并同时学习这门语言。
除了一件重要的事情外,下面的代码块几乎完成了我想要它做的事情。任何帮助将不胜感激
categories.forEach (cat,i) ->
mainCat= categ[i] = new Layer
width:185
height:77
parent:catSelect.content
y:13
x:205*i+20
image:categories[i]
categ[i].states.add
off:
image: categories[i]
on:
image: altCat[i]
categ[i].on Events.Click, ->
categ[i].states.next("on","off")
if categ[i].states.current is "on"
print "true"
这里我有一个循环来创建类别按钮 (mainCat),它有 2 个状态,并附有单独的图像数组(categories[] 和 altCat[])。
我已将这个循环放在一个数组中,这样现在,当我单击一个类别时,我可以使用 categ[i] 检查它的状态,但这几乎是我的限制所在。
现在这基本上将我的 categ[] 数组中的对象视为多项选择,而我希望它一次只让数组中的一个对象处于 "on" 状态,一旦它在 "on" 状态下,它需要显示特定的卡片行,同时将其他行隐藏在位于单独的 layer/div.
中的另一个数组(称为卡片 [])中即类似于:
if categ[!=i].states.current is "on"
categ[!=i].states.switch("off")
cardsRow[!=i].opacity=0
cardsRow[i].opacity=1
提前致谢!
你必须循环遍历categ
中的所有对象,然后检查它们是否与已单击的图层相同,以打开或关闭它们。
同样适用于为另一个数组中的图层设置不透明度,但是您应该使用循环的索引来查找图层:
categ[i].on Events.Click, ->
for l, index in categ
if categ[i] == l
l.states.switch("on")
cards[index].opacity = 1
else
l.states.switch("off")
cards[index].opacity = 0
可在此处找到使用此功能的完整原型:http://share.framerjs.com/2yg7ix83yv1l/ 我已将图像替换为背景颜色以使图层可见。