[AS2] DÉPLACER PAR CLICS UN RECTANGLE DANS UNE ZONE DÉLIMITÉE
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010
-
22 avril 2009 à 12:55
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDerniè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.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 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és1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 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és183Date d'inscriptionmercredi 29 novembre 2000StatutMembreDernière intervention23 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és1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDerniè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 ...
cs_smoochy
Messages postés183Date d'inscriptionmercredi 29 novembre 2000StatutMembreDernière intervention23 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és1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDerniè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és183Date d'inscriptionmercredi 29 novembre 2000StatutMembreDernière intervention23 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és10Date d'inscriptionlundi 8 décembre 2008StatutMembreDernière intervention22 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és6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 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és1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDerniè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és1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDerniè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és6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 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és10Date d'inscriptionlundi 8 décembre 2008StatutMembreDernière intervention22 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és6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 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és1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDerniè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;
}
}
23 avril 2009 à 14:42
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'
23 avril 2009 à 14:38
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)
22 avril 2009 à 21:43
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
22 avril 2009 à 18:37
Ben ... je l'avais mise ici :
http://www.flashkod.com/tutoriaux/TUTORIEL-AS3-NOTIONS-BASE_906.aspx
22 avril 2009 à 18:30
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...)
22 avril 2009 à 18:01
- uint: Nombre entier ne pouvant etre negatif
- Number: N'importe quel nombre.
22 avril 2009 à 17:36
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?
22 avril 2009 à 15:34
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
22 avril 2009 à 14:08
Peg'
22 avril 2009 à 14:03
Sinon c'est clair que basculer le code en AS3 c'est super compliqué (mdr) !
22 avril 2009 à 14:02
Merci ;=)
22 avril 2009 à 13:47
Peg'
22 avril 2009 à 13:45
Merci.
22 avril 2009 à 13:42
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'
22 avril 2009 à 12:55
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;
}
}