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

on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010 - 22 avril 2009 à 12:55
pegase31 Messages postés 6138 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

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
23 avril 2009 à 14:42
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'
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
23 avril 2009 à 14:38
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)
cs_smoochy Messages postés 183 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 23 avril 2010
22 avril 2009 à 21:43
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
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
22 avril 2009 à 18:37
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 183 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 23 avril 2010
22 avril 2009 à 18:30
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...)
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
22 avril 2009 à 18:01
- 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 183 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 23 avril 2010
22 avril 2009 à 17:36
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?
devilwu Messages postés 10 Date d'inscription lundi 8 décembre 2008 Statut Membre Dernière intervention 22 avril 2009
22 avril 2009 à 15:34
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
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
22 avril 2009 à 14:08
restrict n'est qu'une fonction custom et on peut l'appliquer à ce que l'on veut ;)

Peg'
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
22 avril 2009 à 14:03
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) !
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
22 avril 2009 à 14:02
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 ;=)
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
22 avril 2009 à 13:47
à 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'
devilwu Messages postés 10 Date d'inscription lundi 8 décembre 2008 Statut Membre Dernière intervention 22 avril 2009
22 avril 2009 à 13:45
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 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
22 avril 2009 à 13:42
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'
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
22 avril 2009 à 12:55
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;
}
}
Rejoignez-nous