[AS2] DÉPLACER PAR CLICS UN RECTANGLE DANS UNE ZONE DÉLIMITÉE

Messages postés
1275
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010
- - Dernière réponse : pegase31
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
- 23 avril 2009 à 14:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49896-as2-deplacer-par-clics-un-rectangle-dans-une-zone-delimitee

on_drag_on
Messages postés
1275
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010
-
Salut,

Oué ... enfin c'était pas plus dur de le transposer en AS3 du coup ...

my_btn.addEventListener(MouseEvent.CLICK, functionCadre);
function functionCadre(event:MouseEvent):void {
var X = mouseX;
var Y = mouseY;
cadre.x = X
cadre.y = Y
if(cadre.y < 135){
cadre.y = 135;
}
if(cadre.y > 266){
cadre.y = 266;
}
if(cadre.x < 125){
cadre.x = 125;
}
if(cadre.x > 425){
cadre.x = 425;
}
}
pegase31
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6 -
il y a une méthode encore plus belle et moins lourde :

var X:Number, Y:Number;
my_btn.addEventListener(MouseEvent.CLICK, functionCadre);
function functionCadre(evt:MouseEvent):void {
X = restrict(evt.localX, 125, 425);
Y = restrict(evt.localY, 135, 266);
}
function restrict(nb:Number, min:Number, max:Number):Number {
return (nb<min) ? min : (nb>max) ? max : nb;
}

Il est possible de mettre des int à la place des Number, mais en cas de zoom, on perd la précision.
Pour les explications, n'hésitez pas à demander

Peg'
devilwu
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009
-
Salut, je ne connais pas encore assez bien AS3 pour m'y lancer mais je vous remercie car avec vos 2 codes je vais pouvoir étudier ça d'un peu plus prêt ;) !
Merci.
pegase31
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6 -
à part l'ajout du listener pour déclencher la fonction, il n'y a aucune fonction spécifique AS3 dans nos deux codes. Le reste fonctionne trés bien en AS2.

Peg'
on_drag_on
Messages postés
1275
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010
-
Eh ben, je me demandais si il y avait lieu de poser ce code en source ici et voilà que je découvre cette propriété restrict, et je vois qu'elle est aussi très intéressante au niveau d'un champ de texte :)
Merci ;=)
Orange73
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
-
humm... pas mal Peg' pour localX et localY, j'y avais pas pensé :-)

Sinon c'est clair que basculer le code en AS3 c'est super compliqué (mdr) !
pegase31
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6 -
restrict n'est qu'une fonction custom et on peut l'appliquer à ce que l'on veut ;)

Peg'
devilwu
Messages postés
10
Date d'inscription
lundi 8 décembre 2008
Statut
Membre
Dernière intervention
22 avril 2009
-
Ouf, désolé mais comme je l'ai dit je viens tout juste de commencer AS.
J'ai du choisir la version 2 par rapport à mon projet (qui est de ré-adapter un script). Donc du fait que je dois dabord apprendre l'AS2 pour comprendre le script que j'ai à adapter. Par la suite, par contre c'est vrai que l'adapter en AS3 serait une bonne idée.

En tout cas je vous remercie des commentaires, une fois mon projet terminé en AS2 je tenterais de le mettre à niveau.

Devilwu
cs_smoochy
Messages postés
184
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
23 avril 2010
-
hello,
comme quoi pour arriver au même résultat ya toujours 1000 façons...

perso j'aurais codé comme on_drag_on, mais vu que tu arrives à économiser 9 lignes de codes sur 19 au total, ça vaut la peine que je regardes ton code de plus près ^^

j'ai juste une question sur ton commentaire:
"Il est possible de mettre des int à la place des Number, mais en cas de zoom, on perd la précision.
Pour les explications, n'hésitez pas à demander"
... alors je demande :-)

j'ai fais une petite recherche sur les différence entre number, int et uint...

ActionScript 3 intègre désormais trois types afin de représenter les nombres :

• int : représente un nombre entier 32 bit (32 bit signed integer)
• uint : représente un nombre entier non signé 32 bit. (32 bit unsigned integer)
• Number : représente un nombre décimal 64 bit (64-bit IEEE 754 double-precision floating-point number)

... mais je ne comprends pas bien la différence entre les 3, j'ai regardé sur le net et ça m'a encore plus embrouillé... qqun aurait une explication simple sur la différence entre ces 3 termes et quand utiliser lequel?
Orange73
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
-
- int : Nombre entier (-1, -2, ... 0, 1, 2 ,3 , 4 ...) sans decimal quoi :)
- uint: Nombre entier ne pouvant etre negatif
- Number: N'importe quel nombre.
cs_smoochy
Messages postés
184
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
23 avril 2010
-
lol comment faire compliqué quand c'est si simple ^^ merci on ne peut être plus clair

si tu regardes sur le net, c'est un concours à qui fera la réponse la plus compliquée... et du coup j'y comprenais plus rien... en fait j'aurais mieux fait de regarder dans l'aide flash as3 directement plutôt que de chercher sur le net...)
on_drag_on
Messages postés
1275
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010
-
si tu regardes sur le net, c'est un concours à qui fera la réponse la plus compliquée ...

Ben ... je l'avais mise ici :
http://www.flashkod.com/tutoriaux/TUTORIEL-AS3-NOTIONS-BASE_906.aspx
cs_smoochy
Messages postés
184
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
23 avril 2010
-
effectivement, en plus je les avais regardé à l'époque tes tutos (très bien faits d'ailleurs)

mais le fait est que j'ai vraiment pas eu le temps de me plonger dans l'as3 et que j'ai dû continuer de faire des travaux en as2, donc j'ai un peu oublié tout ce que j'avais regardé en début d'année
cs_Girou
Messages postés
1204
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2 -
function restrict(nb:Number, min:Number, max:Number):Number {
return (nb<min) ? min : (nb>max) ? max : nb;
}

'taaaaain c'est si simple... que ca en est presque beau
Allez zouu, dans ma class Math Custom en static function.

Merci Peg :o)
pegase31
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6 -
J'ai jamais dit que c'était compliqué ;)
Mais c'est vrai que l'as3 pourrait avoir une méthode pareille, surtout qu'il existe déjà deux propriétés MIN_VALUE et MAX_VALUE qui sont implémentées (et ne servent pas à grand chose au final) ...

Une demande à faire pour CS5 ?

Peg'