2017-07-14 1 views
0

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

0

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

+0

@ hliljegren - Merci, ça marche super! En passant, profitez également de votre post sur OOP en LiveCode. – credenzamatic

0

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.

0

Vous avez juste besoin:

on MouseDown 
    grab me 
end MouseDown 

LiveCode est la plus simple et la langue efficace dans le monde!