fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 2009
-
4 nov. 2005 à 19:46
paulo026
Messages postés28Date d'inscriptiondimanche 19 août 2007StatutMembreDernière intervention17 décembre 2007
-
24 déc. 2007 à 14:04
Bonjour ! je suis en ce moment entrain de faire une animation qui présent les différente opération possible sur un DateChooser !
Alors mon code parait tres lourd car il est constitué de la meme condition répété un grand nombre de fois pour ne changer que le nom de l'objet a chaque fois :
if (jd_selec.selectedIndex == 0) {
date.disabledDays = [7]
}
if (jd_selec.selectedIndex == 1) {
date.disabledDays = [1]
}
if (jd_selec.selectedIndex == 2) {
date.disabledDays = [2]
}
if (jd_selec.selectedIndex == 3) {
date.disabledDays = [3]
}
if (jd_selec.selectedIndex == 4) {
date.disabledDays = [4]
}
if (jd_selec.selectedIndex == 5) {
date.disabledDays = [5]
}
if (jd_selec.selectedIndex == 6) {
date.disabledDays = [6]
}
if (jd_selec.selectedIndex == 7) {
date.disabledDays = [0]
}
Et donc voila !!! Je trouve que c'est beacoup trop chrager !!!
Alors voila enfin ma question :
Je voudrais savoir comment fonctionne exactement les fonctions
function () {
}
Et puis savoir si je peux en créer une pour mon cas et si possible comment ?
...et évite de faire plein de "if"...ça force à faire tous les
tests, préfère "else if", comme ça, dès que t'as une condition
vérifiée, tu arrêtes les tests.
atchoumdu51
Messages postés194Date d'inscriptionjeudi 1 janvier 2004StatutMembreDernière intervention16 juillet 20071 4 nov. 2005 à 20:41
Bonjour
Pour ton code tu peux essayer avec switch(jd_selec.selectedIndex) pour la syntaxe tu peux regarder dans l'aide de flash c'est détaillé
Pour la syntaxe tu peux aussi regarder dans l'aide de flash, je te
donnes un exemple avec une fonction qui prend pour argument un nombre
et qui en renvoi un (le double de l'autre) pour ta fonction mais il
vaut mieux que tu comprennes par toi même comment ca fonctionne
double = function(nombre:Number):Number
{
truc = nombre*2
return truc;
}
C'est possible de créer une fonction mais je ne pense pas que ce serait le mieux
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 4 nov. 2005 à 22:45
Bon alors excuser moi mais j'aurais encore une question !
Voila j'ai adapter ce morceau de code pour tous les test que je doit faire dans l'animation.
Le seul problème c'est que je n'arrive pas a trouver la solution pour les RadioButton. Voila ce que j'ai mis pour l'instant comme code ( il fonctionne ) :
if (lun.selected == true) {
date.firstDayOfWeek = 1
}
if (mar.selected == true) {
date.firstDayOfWeek = 2
}
if (mer.selected == true) {
date.firstDayOfWeek = 3
}
if (jeu.selected == true) {
date.firstDayOfWeek = 4
}
if (ven.selected == true) {
date.firstDayOfWeek = 5
}
if (sam.selected == true) {
date.firstDayOfWeek = 6
}
if (dim.selected == true) {
date.firstDayOfWeek = 0
}
Alors pour donner des précision j'ai donc 7 radiobutton ( pour les 7 jours de la semaine ) ces 7 radiobutton font parti d'un groupe nommé " jourGroup " chaque bouton a une valeur data ( pour lundi -> data [1] | pour mardi -> data [2] | etc | et pour dimanche -> data [0] )
Voila c'est tout ce qu'il y a de spécial
Enfait ca serai pour évité tous ces test ( toujours le meme probleme quoi ! ]
Donc si quelqun sait comment je peu faire pour ce composant et bien merci a lui ci il peu m'aider !!!
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 4 nov. 2005 à 23:44
Alors la vraiment merci !!!
Je pense que celui la je ne l'aurais pas trouver tous seul meme a force de recherche !!!
Et ce n'est pas grave que tu n'est pas vu la question arriver ca m'a laissé le temps de cogiter un peu et de me rendre compt que certaine sythaxe ne sont pas possible etc ,
Vraiment merci !
Pour l'instant je pens pouvoir continuer mais si je rencontre un nouveau problème je sais ou venir
C'est cool
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 20112 5 nov. 2005 à 10:30
La plupart du temps, quand t'as une syntaxe qui se répète 5-6 fois avec
quelques différences d'une ligne à l'autre, y'a toujours moyen de faire
plus simple!
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 5 nov. 2005 à 10:36
Oui mais le probleme c'est que je n'arrive pas toujours a etre au plus logique dans mes syntaxe du coup elle sont mal comprise ou completement fausse.
Et quand elles fonctionnes et bien les commandes que j'utilise ne sont psa forcément adapté aux composants , du coup ca ram ou sa me fait des beug ( et des que j'essais avec des zone de text noraml cela marche )
Mais bon pour l'instant cela me permet d'apprendre et au moins je peu essayer chercher et modifier ce ki ne me semble pas juste !
paulo026
Messages postés28Date d'inscriptiondimanche 19 août 2007StatutMembreDernière intervention17 décembre 2007 21 déc. 2007 à 19:59
Salut à tous,
J'aurais besoin d'aide: j'ai mis un Datechooser et j'aurais voulus qu'en cliquant sur Lundi 12 Fevrier, un lip se lance mais je ne sais pas comment faire! Quelqu'un saurait??
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 21 déc. 2007 à 21:35
Bonsoir paulo026,
Pour répondre à ta petite question, tu peux utiliser le petit code suivant :
var listenerObject:Object = new Object();
listenerObject.change = function(eventObject:Object) {
if ( eventObject.target.selectedDate.getDate() == "12" &&
eventObject.target.selectedDate.getMonth() == "1" &&
eventObject.target.selectedDate.getFullYear() == "2008" ){
Rec.play();
}
}
dateChooserInstance.addEventListener("change", listenerObject);
Dans le cas présent il existe sur ta scène à DateChooser d'occurrence dateChooserInstance et un clip d'occurrence Rec.
Ici la date est fixée sur le 12/02/2008 ( Effectivement le décompte des mois s'effectue sur une base partant de 0 : Janvier ).
Au changement de date sur ton DateChooser, l'écouteur listenerObject transmet à la fonction.
Bon, j'ai pondu ça comme ça me venait, il y a peu-être moyen de faire plus propre.
paulo026
Messages postés28Date d'inscriptiondimanche 19 août 2007StatutMembreDernière intervention17 décembre 2007 22 déc. 2007 à 13:47
Merci beaucoup, mais j'ai un probléme... enfin plusieurs !
Je débute en flash, et je sais pas ou et comment placer le code (sur le Datechooser?)!
Et 2éme probléme, j'aurais un moyen pour que lorsqu'on clique sur Lundi 12 Fevrier 2008, le clip REC se lance et va sur l'image 2; lorsqu'on clique sur Mardi 13 Fevrier 2008, sur l'image 3; et sur Mercredi 14 Fevrier 2008, l'image 4.
paulo026
Messages postés28Date d'inscriptiondimanche 19 août 2007StatutMembreDernière intervention17 décembre 2007 22 déc. 2007 à 13:50
C'est bon, ouf ...j'ai réussi à le placé, desolé!
Maintenant, comment faire pour que, en fonction des dates sélectionnées, le clip ailles à tel ou tel image?
Mais maintenant j'ai un autre probléme : comment faire pour que lorsque l'on clique sur une date différente du 12 ou du 13 Février 2007, on ailles sur l'image 2 de mon clip??
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 22 déc. 2007 à 18:47
Bonsoir
paulo026 ,
Pour répondre à ta petite question je vais mettre en place un exemple concret basé sur le code que je t'ais donné précédement.
Bon alors en premier lieu se que nous voulons cest déterminer des dates clés !
Et nous voulons associer à chaqune de ces dates une image du sénario ( déterminée par son numéro ou son nom ).
Le meilleur des outils pour effectuer une opération comme celle-ci c'est le tableau multidimensionnel !
Nous allons donc commencer notre code en déclarant ce tableau et ces valeurs :
var dates:Array = new Array([["12","1","2008"],2],[["13","1","2008"],3],[["14","1","2008"],4]);
N'oublions pas comme je le disais précédement que le décompte des mois s'effectue depuis zéro.
Cette ligne associe donc la date du 12/02/2008 à l'image N°2, celle du 13/02/2008 à l'image N°3 et s'en suit. Si éventuellement tu voudrais associer une date à un nom d'image tu n'aurais qu'à écrir ceci : [["12","1","2008"],"nom_de_mon_image"].
Ceci fait nous allons devoir exploiter ces informations comme nous le souhaitons.
Nous plaçons donc un DateChooser sur la scène avec un nom d'occurrence "dateChooserInstance" et un clip d'occurrence "movieClip" ( qui est donc le clip à contrôler ).
Pour le code nous allons noter le même corps d'opération que dans mon post précédent comme ceci :
var listenerObject:Object = new Object();
listenerObject.change = function(eventObject:Object) {
}
dateChooserInstance.addEventListener("change",listenerObject);
Et nous allons maintenant construire la fonction qui va lire la date sélectionnée dans le DateChooser et propulser, si besoin est, le clip "movieClip" à l'image inérante.
Pour faire simple nous utiliserons une boucle de traitement for d'une longeur égale à celle du tableau que nous avons déclaré.
for( i=0; i<dates.length; i++ ){
}
Nous allons ensuite créé deux repères temporels dans cette boucle corespondant chaqun au début puis à le fin de la date fixée.
Nous allons biensûr faire appel aux données du tableau comme ceci :
( Ne pas oublier qu'il s'agit d'un tableau comportant plusieurs dimensions, il est donc necessaire d'indiquer le chemin complet des variables de celui-ci )
var repDeb:Date = new Date(dates[i][0][2],dates[i][0][1],dates[i][0][0]);
var repFin:Date = new Date(repDeb.getTime() + 86400000);
A la suite nous allons intégrer la condition if qui va se charger de déterminer si les repères temporels définis aupart avant corespondent bien à l'encadrement de la date du DateChooser.
Il faut maintenant placer les actions à effectuer si oui ou non la condition est vérifiée ou pas.
Si la condition est respecté nous allons mettre en place un mouvement de la tête de lecture dans le clip "movieClip", mais ce n'est pas tout. Effectivement si la condition est vérifiée il va falloir faire en sorte d'interrompre la boucle for pour éviter que celle-ci puisse éventuellement conduire à l'exécution des actions de non vérification de la condition ( dans le cas ou la date délectionnée serait la permière ou la deuxième du tableau par exemple dans le cas présent ).
Nous nous y prendrons alors comme suit :
( Même avertissement qu'en au chemin dans le tableau )
movieClip.gotoAndStop(dates[i][1]);
i = dates.length;
Et afin de définir le retour à l'image par défaut on insère dans la réponse else le code suivant :
movieClip.gotoAndStop(1);
L'expression donné ici renvoyant donc à l'image 1 du clip "movieClip" en cas de non sélection d'une des dates fixées.
Si tu as besoin de plus de renseignement merci de me contacter via message personnel sur ce même site !
Voici donc le code final obtenu :
var dates:Array = new Array([["12","1","2008"],2],[["13","1","2008"],3],[["14","1","2008"],4]);
var listenerObject:Object = new Object();
listenerObject.change = function(eventObject:Object) {
for( i=0; i<dates.length; i++ ){
var repDeb:Date = new Date(dates[i][0][2],dates[i][0][1],dates[i][0][0]);
var repFin:Date = new Date(repDeb.getTime() + 86400000);
if( eventObject.target.selectedDate.getTime() >= repDeb.getTime() &&
eventObject.target.selectedDate.getTime() < repFin.getTime()) {
movieClip.gotoAndStop(dates[i][1]);
i = dates.length;
}else{
movieClip.gotoAndStop(1);
}
}
}
dateChooserInstance.addEventListener("change",listenerObject);
Le fait étant que tu es débutant ( et aussi que c'est Noël ) j'ai pris la peine d'essayer de détailler le code que je te présente.
Evidement il y a moyen de faire plus court, néanmoins j'ai pensé que ce code ci pouvait en l'état te permettre de découvrir quelques trucs de flash, comme la multidimensionnalité des tableaux. Enfin un petite quelque chose en plus quoi !
Voila voila,
Sur ce, je te souhaite une bonne continuation.
Contactes moi si tu veux plus d'informations, je n'ai jamais mangé personne,
Bon code à tous :
paulo026
Messages postés28Date d'inscriptiondimanche 19 août 2007StatutMembreDernière intervention17 décembre 2007 23 déc. 2007 à 12:41
Merci pour ce code!
Euh jevais profiter de ta généreusité (vite Noel c dans 3j faut que jme dépéche XD) pour te demander:
-comment faire pour que la date sélectionner m'apparaisse dans un texte dynamique (ex: I) présent dans le clip, pour que
l'utilisateur puisse me l'envoyer?
-comment faire pour que certaies dates brillent comme avec la fonction showdate?
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 23 déc. 2007 à 20:57
Bonsoir
paulo026 ,
Alors, pour tes petites questions, je pourrais répondre à la première en te conseillant de déclarer une variable de scénario globale. Afin de vous accèder à ta valeur dans ton clip. Néanmoins si il s'agit d'un formulaire tu peu aussi bien utiliser le DateField. Pour la variable tu peu t'y prendre ainsi en formulant la synthaxe de ta chaine de caractères après :
_global.messDate = eventObject.target.
selectedDate;//Formation de la synthaxe
Tu peux donc ainsi récupérer la chaine de caractère ailleur en faisant par exemple :
textField.text = messDate;
Pour ta seconde question j'ai supposé que tu parlais non pas de showDate mais de showToday mais je suis au regret de te dire que ce n'est pas possible. A moins évidement de créer son propre composant date permettant une telle interaction.