Définir limites [AS2] [Résolu]

Signaler
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009
-
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009
-
Bonjour,
J'étudie ActionScript 2.0 depuis plus d'un mois et j'ai commencé mon premier script qui consistait à déplacer un objet en cliquant sur une zone. Ce petit objet (cadre) devait être déplaçable sur toute la surface d'un rectangle (voir exemple).
J'ai réussi hier en fin d'après-midi (mon tout premier code).
Jusque la, tout va bien ! Mais les choses se complique car mon petit cadre ne devrait pas sortir du rectangle.
Et j'ai beau cherché mais je ne trouve pas comment faire… j'ai pensé à hit test mais je n'ai pas réussi à le faire fonctionner…

Si vous pouvez m'aider ça serait vraiment cool !

Voici le swf : http://corpsrompus.com/flash/suiviclic.swf
Et le fla : http://corpsrompus.com/flash/suiviclic.fla

13 réponses

Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Hello,

tu pourrais utiliser des conditions if afin de dire :

- si la position y de mon cadre est inferieur à 0 alors la position y de mon cadre est egale à 0.
- si la position y de mon cadre est superieur a la hauteur de mon
rectangle alors la position y de mon cadre est egale à la hauteur de mon
rectangle moins la hauteur de mon cadre.
- si la position x de mon cadre est inferieur à 0 alors la position x de mon cadre est egale à 0.
- si la position x de mon cadre est superieur a la largeur de mon
rectangle alors la position x de mon cadre est egale à la largeur de mon
rectangle moins la largeur de mon cadre.

-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Aller je suis sympa, je t'aide :

if(cadre_mc._y < 0){


     cadre_mc._y = 0;


}


if(cadre_mc._y > rectangle_mc._height){


     cadre_mc._y = rectangle_mc._height - cadre_mc._height;


}

if(cadre_mc._x < 0){


     cadre_mc._x = 0;


}


if(cadre_mc._x > rectangle_mc._width){


     cadre_mc._x = rectangle_mc._width - cadre_mc._width;


}

-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009

J'ai finalement changé l'emplacement des fichiers (pour la simple raison que je ne pourrais pas continuellement garder ces fichiers à l'emplacement indiqué).
Donc les re-voici :
http://www.flashkod.com/codes/AS2-DEPLACER-CLICS-RECTANGLE-DANS-ZONE-DELIMITEE_49896.aspx
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009

J'avais quelques idées comme ça mais vraiment trop vagues…
Je te remercie. Je vais essayer et je te tiens informé ;)
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
De mémoire en tant qu'ancien développeur AS2 il est possible de définir les limites du drag lors de l'appel de la fonction.

Renseigne toi sur le dictionnaire ActionScript, sur la fonction startDrag(), notamment sur les paramètres qu'elle accepte.

Blacknight
www.osteres.com
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Hello [../auteur/BLACKNIGHT91TITI/294509.aspx Blacknight91titi],

si tu étais aller voir sa demo tu aurai vu que ce n'est pas un Drag

-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009

Effectivement ce n'est pas un drag,
Mais la prochaine étape et d'y ajouter le drag and drop et j'ai testé, ça ne pose pas ce problème.
Merci quand même.
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
D'après la question posé dans le premier message, ça avait tout l'air d'être un drag & drop.

Etant donné que tu ne t'en sert pas, je ne peux que vivement te conseiller de l'utiliser plutôt que de le réinventer ;)
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009

Justement, je l'utilise aussi mais mon problème ne venait pas de ça donc je préférais présenter que mon problème.

Enfaite  l'idée derrière tout ça, c'était de pouvoir déplacer de façon intuitive ce cadre, soit en le glissant comme on le ferait avec un dossier sur son bureau soit en cliquand sur l'endroit que l'on voudrait visionner.

En tout cas, je te dois un grand merci Orange Bob car tu m'as carrément fait le code et je t'en suis vraiment reconnaissant car tout est nickel !

Je vais ré-uploader les fichiers, au cas où quelqu'un voudrait faire développer un script similaire en AS2.

Merci à toi aussi Blacknight, et désolé de la confusion dans ma demande.

Voici le swf : http://corpsrompus.com/flash/suiviclic.swf
Et le fla : http://corpsrompus.com/flash/suiviclic.fla
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
Penses également à marquer le topic comme résolu afin que d'autre puisse se rendre dessus en sachant que la réponse s'y trouve.

Bon flash !
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009

Par contre je n'ai pas trouvé de zone éditable si c'est le titre qu'il faut changer
Comment dois-je faire ?
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
Non c'est parfait, tu as bien validé la réponse.

C'est un moyen qui permet de voir qu'un réponse à été validé (que tu as trouvé réponse à ta question).

Certaines questions restent malheureusement sans réponse... d'autre parce que leur auteur ne prennent pas la peine de la valider.
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009

Ok !
Merci encore !