Framerjs 如何为在for循环中创建的层创建动画
考虑Framerjs 如何为在for循环中创建的层创建动画,framerjs,Framerjs,考虑集合网格和带有单击动画的层的两个片段。以下仅将动画侦听器添加到最后一个网格项(位于3:3位置的层): 如何在循环中单独命名层以应用动画 类似于cellLayer[rowIndex][colIndex]=新层的东西将是理想的,但不起作用;博士 只需使用以下do关键字即可解决此问题: do (cellLayer) -> cellLayer.on Events.Click, -> cellLayer.animate properties: scale: 1.4
集合网格
和带有单击动画的层的两个片段。以下仅将动画侦听器添加到最后一个网格项(位于3:3位置的层):
如何在循环中单独命名层以应用动画
类似于cellLayer[rowIndex][colIndex]=新层的东西将是理想的,但不起作用;博士
只需使用以下do
关键字即可解决此问题:
do (cellLayer) ->
cellLayer.on Events.Click, ->
cellLayer.animate
properties: scale: 1.4
curve: "spring"
当使用JavaScript循环生成函数时,通常会插入一个闭包包装器,以确保循环变量被关闭,并且所有生成的函数不只是共享最终值。CoffeeScript提供“do”关键字,该关键字立即调用传递的函数,转发任何参数
从技术上讲,您必须使cellLayer
的每个作用域成为循环,因为cellLayer
的作用域是循环的。在CoffeeScript中,提供了语法sugardo
关键字。只需在代码中放入do
,然后使用iLife自动创建作用域。如果您对JavaScript有所了解,可以为您提供帮助。还请注意,我将单击的层作为第二个参数添加到您的处理程序中:
cellLayer.on Events.Click, (event, clickedLayer) ->
clickedLayer.animate
properties:
scale: 1.4
curve: "spring"
cellLayer.on Events.Click, (event, clickedLayer) ->
clickedLayer.animate
properties:
scale: 1.4
curve: "spring"