Une capture d'écran d'une des cartes de l'application LiveCode que je suis en train de travailler apparaît ci-dessous. L'utilisateur peut cliquer sur les icônes et les déplacer sur l'écran, idéalement pour les classer en utilisant les cases à droite. Pour enregistrer le classement des icônes, j'aimerais obtenir leurs coordonnées y, c'est-à-dire que plus la valeur de la coordonnée y est élevée, plus le classement est bas. Je suis perplexe sur comment passer les coordonnées des images à une variable, cependant. Je suis relativement nouveau sur LiveCode, donc toute aide est très appréciée. rating_screenshotTransmission des coordonnées x, y d'une image dans LiveCode
Répondre
Bienvenue sur LiveCode!
Dans LiveCode vous avez un attribut:
the loc of image ”imagename”
que vous pouvez passer comme une variable à une procédure. Cela contiendra x et y de votre image (ou n'importe quel contrôle) séparés par une virgule. Pour obtenir juste le y, vous devez obtenir le deuxième élément de cela. Donc, vous pouvez soit saisir cela dans votre procédure ou directement quand vous le passez. Disons que vous avez une procédure appelée saveOrder
où vous en quelque sorte enregistrer vos données. Le vous pouvez appeler avec la coordonnée y comme:
saveOrder item 2 of the loc of image “imagename”
Si vous voulez juste prendre quelque chose pour déterminer quelle image est supérieure à l'autre, vous pouvez utiliser à la place the top
ou the bottom
au lieu de item 2 of the loc
. Regardez-les dans le dictionnaire pour plus d'explications ...
PS the loc
est court pour the location
et bien sûr, vous pouvez l'écrire si vous le préférez
Juste un exercice: Sur une nouvelle carte faire deux boutons. Dans le script de la carte:
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
Cliquez sur un bouton et faites-le glisser. Lorsque vous faites glisser, la coordonnée "Y" du centre du bouton apparaîtra dans la boîte de message. Bien sûr, lorsque vous relâchez, la dernière coordonnée va coller. Comme le souligne hliljegren, vous ne pouvez pas vouloir le centre, mais plutôt le sommet ou un autre point sur le contrôle d'intérêt.
Vous avez juste besoin:
on MouseDown
grab me
end MouseDown
LiveCode est la plus simple et la langue efficace dans le monde!
@ hliljegren - Merci, ça marche super! En passant, profitez également de votre post sur OOP en LiveCode. – credenzamatic