我不是英语母语,对不起我的游泳池字。
我做了这样的数组..
# item layers
a = new Layer({x:20, width:80, height:80, image:"images/a.png"})
b = new Layer({x:120, width:80, height:80, image:"images/b.png"})
c = new Layer({x:220, width:80, height:80, image:"images/c.png"})
d = new Layer({x:320, width:80, height:80, image:"images/d.png"})
e = new Layer({x:420, width:80, height:80, image:"images/e.png"})
f = new Layer({x:520, width:80, height:80, image:"images/f.png"})
# item layers array - draggable
item = [a, b, c, d, e, f]
for i in [0..5]
item[i].draggable.enabled = true
item[i].draggable.speedY = 0
item[i].borderRadius = 100
item[i].opacity = 0.5
item[i].centerY()
# item reorder
item[i].on Events.DragMove, ->
if item[i].midX > item[i+1].midX
item[i+1].animate
properties:
x:item[i+1].x - 100
else if item[i].midX < item[i-1].midX
item[i-1].animate
properties:
x:item[i-1].x + 100
&#13;
但它不起作用。 拖动图层a时,其他图层不会移动。 我该怎么办?
答案 0 :(得分:1)
通过i
访问图层,但事件i
始终为6
,因为i
被称为同一事物(在内存中)。你可以捕捉&#34;像这样在每个循环上的图层。
prev = item[i-1] if i > 0
curr = item[i]
next = item[i+1] if i<item.length-1
但问题仍然存在。第一次订购会很好。但第二个不会像你想要的那样工作。订购后应重新计算动画中的属性。那听起来很疯狂?好。通过位置访问的方式比通过数组的索引更好。 like this,你知道。