COMPTE À REBOURS ACTIONSCRIPT3

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 - 7 janv. 2009 à 03:01
tatenvoyage Messages postés 4 Date d'inscription samedi 7 avril 2012 Statut Membre Dernière intervention 10 avril 2012 - 10 avril 2012 à 22:27
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/48899-compte-a-rebours-actionscript3

tatenvoyage Messages postés 4 Date d'inscription samedi 7 avril 2012 Statut Membre Dernière intervention 10 avril 2012
10 avril 2012 à 22:27
et si on veux faire un décompte mais de par exemple 30 secondes, peux t’ont réussir en modifiant les données de la base Date?
sachant que le décompte doit dans mon cas recommencer à chaque fois que la page est actualisée.
sagwork Messages postés 7 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 25 juin 2010
25 juin 2010 à 17:25
Bonjour LP5 ce que tu veux faire en fait c'est compter le temps écoulé depuis le dernier mouvement de souris (pour détecter l'INACTIVITE dans ton application, je suppose que tu veux faire un screensaver ou quelquechose dans le genre) il suffit donc d'écouter les mouvement de souris (un enter_frame qui appelle une fonction écoutant la souris et relevant ses coordonnées dans un tableau pour les comparer : tant que la dernière valeur correspond à la valeur actuelle, décompter le temps (un timer par ex) si les coordonnées sont différentes : stopper et réinitialiser le timer. La fonction "écouteur" en AS3 c'est tonObjet.addEventListener(type d'évenement, fonction à déclencher) et ta fonction doit avoir un paramètre de type Event (ou ici MouseEvent) et ne rien renvoyer (:void comme type de renvoi et pas d'instruction return). Je suis sur un gros projet en ce moment donc pas le temps de coder ce que tu cherches mais si tu es patient je pourrais le poster dans une autre sources et te prévenir ^^.

Amicalement,
Julien
lp5 Messages postés 32 Date d'inscription samedi 8 mai 2004 Statut Membre Dernière intervention 5 septembre 2010
22 juin 2010 à 07:04
J'OUBLIAI L'ESSENTIEL !!!
un script capable de fixer une durée, exemple 2 minutes
Et une fois le temps écoulé, simplement charger une page différente
A CONDITION QU'IL N'Y AIT AUCUN MOUVEMENT DE SOURIS

cela permettrait diverses applications pour animer un site

merci
lox
lp5 Messages postés 32 Date d'inscription samedi 8 mai 2004 Statut Membre Dernière intervention 5 septembre 2010
21 juin 2010 à 19:42
Bonjour à tous
Je cherche depuis un bon moment (très long moment pour être précis) un script capable de fixer une durée, exemple 2 minutes
Et une fois le temps écoulé, simplement charger une page différente
j'avais bidouillé un truc en flash 8, mais en AS3, je m'arrache les cheveux

est-ce que quelqu'un pourrait me mettre sur la bonne piste ????

merci
lox
evildeadtchat Messages postés 4 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 21 septembre 2012
15 janv. 2009 à 14:44
Salut Julien !
Personne n'est parfait et c'est être grand que de le reconnaître ;-)
A +
sagwork Messages postés 7 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 25 juin 2010
9 janv. 2009 à 15:51
Merci top30 tu viens de résoudre une solution que j'allais tester pour l'obtention des dates (la précision ici ne m'était guère importante il s'agit uniquement d'un compte à rebours pour prévenir de l'ouverture prochaine d'un site cf : debugApp() dans mon api).

Ta remarque sur les années bissextiles est judicieuse et j'avais déjà commencé à explorer cette solution, je n'ai pas eu le temps encore de l'implémenter (l'ouverture du site est prévus dans 20 jours, j'ai pour le moment d'autre priorités ^^) mais pour cette solution je pensais rajouter quelques boucles conditionnelles effectuant une comparaison avec les entrées d'un tableau de références pour la détection des années bissextiles et une solution de formatage des données dans la même idée que les boucles "while" qui servent à formater les données.

Il reste encore pas mal de travail donc merci pour ton commentaire "Top", et merci aussi "Peg", je pensais ce compte à rebours réussi, il possède en fait quelques grosses lacunes. ^^

Julien
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
9 janv. 2009 à 13:35
Salut...
L'objet date par lui même ne résoudre pas ton problème ! L'objet Date servant à la manipulation de "DATE" non de "TEMPS". Et toi ton soucis comme tu l'as dis, est convertir une différence.

Pour obtenir une difference de temps exacte, entre deux dates, fait comme suit (AS3):

var o :Date = new Date() ;
// Instant présent...

var a :Number = Date.UTC(o.fullYear,o.month,o.date,o.hours,o.minutes,o.seconds ) ;
// Millisecondes du 01/01/1970 à maintenant...

var b :Number = Date.UTC(2012,1,15,13,30,0) ;
// Millisecondes du 01/01/1970 jusqu'au 15 février 2012, 13H30...

var c :Number = Math.round( (b-a)/1000 ) ;
// Le nombre de secondes entre maintenant et le 15 février 2012, 13H30...

A partir de ceci à toi de convertir la différence en ce que tu veux... Je te rappelle que si tu souhaites de la précision, tu dois tenir compte des années bisextile. Il serait con de faire un compte à rebours qui ne fonctionne pas correctement au dela d'une année, afin d'éviter ce soucis relativement prise de tête.

A simplifier....
Bon courage !
sagwork Messages postés 7 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 25 juin 2010
7 janv. 2009 à 14:09
Petite rectification de l'absurdité citée au dessus :

la classe "Date" hérite de la classe "Object", tout comme la majeures partie des classes (actionscript étant un langage objet), je n'ai pas cerné exactement quelle classe implémente par héritage les méthodes de la classe "Date" mais elles sont disponibles c'est une certitude : le code fonctionne (j'avoue que c'est pas logique vu l'explication précédente mais ça fonctionne ^^).

Toutes ces réflexions m'ont permis de constater que ma source est en fait un calculateur de différence de temps entre deux dates (ce pourrait être des références complètement différentes, se serait adaptable) modifié pour fournir un compte à rebours. Cette solution a l'avantage de permettre de grandes libertés quand à l'extensibilité et la portabilité de cette fonctionnalité.

Julien
sagwork Messages postés 7 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 25 juin 2010
7 janv. 2009 à 13:14
Pour info :

//définition des variables
public var dateRef:Date;//date de référence du compte à rebours
public var maintenant:Date;//instant présent (peut etre n'importe quelle date)

//initialisation des dates
public function defDatesRef():void
{
maintenant = new Date();
dateRef = new Date(2009, 0, 07);
}

N'est ce point cette fameuse classe Date?!! (il est vrai que je ne demande rien au préprocesseur : pas d'import en ce qui concerne cette classe... ce chargerait elle systématiquement dut au développement sous FLEX?...)
sagwork Messages postés 7 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 25 juin 2010
7 janv. 2009 à 09:50
Excellente question, je n'ai pas trouvé de fonction de conversion simple dans la classe Date. Pour m'aider à développer cette API je me suis basé sur trois sources : "actionscript par l'exemple" d'Oreilly, "actionscript 3" de David Tardiveau et un script provenant de javascript.fr.

La logique métier vient donc en grande partie d'une translation du javascript vers actionscript. Pour les conversions, le livre Oreilly me proposait une classe perso qui enrichie le framework et je déteste utiliser des classes que je n'ai pas développé moi-même (je ne comprends pas forcement la logique).

Mais au vu de ta remarque, j'ai du rater quelquechose... ^^

Merci en tout cas Peg pour ta rapidité de réaction. Comment aurais tu implémenté la classe date pour quelle fasse ce qu'on lui demande?
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
7 janv. 2009 à 03:01
Question idiote, mais :
Pourquoi ne pas avoir utilisé la classe Date ?

Peg'
Rejoignez-nous