我试图制作一个图像,在左键单击时将数字提高一个,并在右键单击时降低它。 我能够通过以下代码让鞋子检测到哪个按钮被点击:
Shoes.app do
@info = para "No button pressed."
click do |button|
@info.replace "#{button} was PRESSED."
end
end
这很好用。 LMB为1,RMB为2,MMB为3。 但是当我尝试检测一个点击的图像时
Shoes.app do
number = 0
@image = image "image.png"
@info = para "No button pressed."
@image.click do |button|
@info.replace "#{button} was PRESSED."
end
end
似乎只是在传递自我。结果,无论按钮如何,都按下了“(Shoes :: Image)”。我找不到任何方法来解决这个问题。
答案 0 :(得分:2)
如果你试试这会怎么样?
Shoes.app do
number = 0
@image = image "image.png"
@info = para "No button pressed."
@image.click do |button|
@info.replace "#{button.inspect} was PRESSED."
end
end
答案 1 :(得分:2)
我认为元素的click方法旨在将self
作为块传递。
据我所知,唯一的方法是使用主点击事件并使用鼠标位置块来确定点击时鼠标是否在图像上。
Shoes.app do
number = 0
@info = para "No button pressed."
@image = image "image.png"
click {|button, x, y|
if (x > @image.left) && (x < (@image.left + @image.width)) && (y > @image.top) && (y < (@image.top + @image.height))
@info.replace "#{button} was PRESSED."
end
}
end