Ruby Shoes:使用。单击图像无法区分左键和右键单击

Ruby Shoes:使用。单击图像无法区分左键和右键单击,ruby,click,right-click,shoes,Ruby,Click,Right Click,Shoes,我试图制作一个图像,左键单击时数字上升1,右键单击时数字下降。 我能够让鞋子检测到哪个按钮被点击,代码如下: 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 @imag

我试图制作一个图像,左键单击时数字上升1,右键单击时数字下降。 我能够让鞋子检测到哪个按钮被点击,代码如下:

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。我找不到任何办法来解决这个问题。

如果您尝试这个方法会发生什么

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

如果你试试这个会怎么样

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

我认为元素的单击方法设计为将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

我认为元素的单击方法设计为将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

我可以让它告诉你点击了什么。问题是让图像从右键单击区分左键和右键。正常情况下,单击“执行”按钮将返回按钮,但在图像上使用时,它将返回图像。您尝试过该代码吗?在图像上单击鼠标右键和左键,应该可以更改段落文本。据我所知,唯一允许您检测按钮编号的方法是主单击方法。所以你需要分别比较鼠标和图像的位置来检测图像是否被点击。我可以让它告诉你点击了什么。问题是让图像从右键单击区分左键和右键。正常情况下,单击“执行”按钮将返回按钮,但在图像上使用时,它将返回图像。您尝试过该代码吗?在图像上单击鼠标右键和左键,应该可以更改段落文本。据我所知,唯一允许您检测按钮编号的方法是主单击方法。因此,您需要分别比较鼠标和图像的位置,以检测图像是否被单击。仍然返回Shoes::image。我认为问题出在脚本的@image.click do | button |部分。仍然返回Shoes::image。我认为问题出在脚本的@image.click do | button |部分。