我正在使用的LiveCode应用中的其中一张卡的屏幕截图如下所示。用户可以单击图标并在屏幕上移动它们,理想情况是使用右侧的框对它们进行排序。为了记录图标的排名,我想得到它们的y坐标 - 也就是说,y坐标值越高,排名越低。不过,我对如何将图像的坐标传递给变量感到难过。我对LiveCode很新,所以非常感谢任何帮助。rating_screenshot
答案 0 :(得分:0)
欢迎使用LiveCode!
在LiveCode中,您有一个属性:
the loc of image ”imagename”
您可以将其作为变量传递给过程。这将包含以逗号分隔的图像(或任何控件)的x 和 y。要得到你需要的第二项。因此,您可以在程序中获取它,也可以在传递时直接获取。假设您有一个名为saveOrder
的过程,您可以通过某种方式保存数据。您可以使用y坐标调用它,如:
saveOrder item 2 of the loc of image “imagename”
如果您只是想抓住某些内容以确定哪个图片高于另一个图片,则可以使用the top
或the bottom
代替item 2 of the loc
。在字典中查找它们以获得进一步的解释......
PS the loc
是the location
的缩写,当然如果您愿意,可以将其写出来
答案 1 :(得分:0)
只是一个练习:在新卡上制作两个按钮。在卡片脚本中:
on mouseMove
if "button" is in the name of the target and the mouse is down then
set the loc of the target to the mouseLoc
put item 2 of the loc of the target
end if
end mouseMove
单击按钮并拖动它。当你拖动时," Y"按钮中心的坐标将出现在消息框中。当然,当你释放时,最后一个坐标会坚持下去。
正如hliljegren指出的那样,你可能不想要中心,而是想要控制感兴趣的顶部或其他一点。
答案 2 :(得分:0)
你需要:
on MouseDown
grab me
end MouseDown
Livecode是世界上最简单有效的语言!