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

Signaler
Messages postés
1275
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010
-
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
-
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

Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
8
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'
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)
Messages postés
183
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
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
Messages postés
183
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...)
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.
Messages postés
183
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?
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
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
8
restrict n'est qu'une fonction custom et on peut l'appliquer à ce que l'on veut ;)

Peg'
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) !
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 ;=)
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
8
à 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'
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.
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
8
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'
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;
}
}