cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 2010
-
11 mai 2009 à 15:49
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 2010
-
11 mai 2009 à 19:19
Bonjour,
question de cours...
Je viens de découvrir qu'il existe une classe Vector, d'après ce qui est dit, plus optimiser que la classe Array, mais plusieurs trucs me chiffonnent...
D'abord, il semblerait que la classe ne trouve pas automatiquement le nombre d'élément qu'elle comporte, et qu'on soit obliger de lui attribuer un nombre d'élément dès le départ... est-ce vrai ou faux.
Si je fais :
var vecteurPrenoms:Vector.<String> = new Vector.<String>(3);
var nbre:int=vecteurPrenoms.length;
vecteurPrenoms[0]="Bobby";
vecteurPrenoms[1]="Alfred";
trace("nombre d'élément de vecteurPrenoms = "+nbre);
trace("les éléments sont : "+vecteurPrenoms[0] +" et "+ vecteurPrenoms[1] + " et "+vecteurPrenoms[2]);
vecteurPrenoms.push ( "James" );
trace("Après ajout les éléments sont : "+vecteurPrenoms[0] +" et "+ vecteurPrenoms[1] + " et "+vecteurPrenoms[2]);
James n'est pas pris en compte, par contre si je l'ajoute avec :
vecteurPrenoms[2]="Jim";
Là il est pris en compte
Aussi, comment fait-on si on ne connait pas le nombre d'élément que va comporter le "vecteur" ???
J'ai aussi essayé autre chose :
var vecteurNombre:Vector. = new Vector.([5,45,856,41526,23]);
var nbre:int=vecteurNombre.length;
trace("nombre d'éléments de vecteurNombre = "+nbre);
trace(vecteurNombre[0]);
Qui est un exemple du bouquin
Pour le premier trace;.. il me donne 0 et pour le second un message d'erreur lié au fait qu'il y a zéro éléments et qu'il ne peut donc définir l'élément demandé.
Si quelqu'un a des explications pour tout cela... merci d'avance.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 11 mai 2009 à 16:59
Le Vector est un "Array Typé" et toutes les fonctions dispo dans la Classe Array sont les mêmes que pour le Vector (avec les conditions de typage).
Tu peux faire des splice, des push, des POP, etc ... donc tu peux manipuler, trier et ressortir tout ce que tu désires. Vector est un Array, mais plus stricte (et donc plus rapide).
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 20102 11 mai 2009 à 16:27
Salut, et merci de ta réponse...
Hélas ça marche pas, si j'enlève le (3) j'ai la réponse :
nombre d'élément de vecteurPrenoms = 0
(au premier trace)
RangeError: Error #1125: L'index 2 est en dehors des limites 2.
at vector_fla::MainTimeline/frame1()
(pour la suite)
Je vais par contre étudier ton package.
En tout cas, merci de ton aide.
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 20102 11 mai 2009 à 16:44
Merci peg... ça roule juste une petite question en plus le length de mon "vecteur" comme cela est conseillé, il ne change pas après un ajout et l'on est obligé de passer en direct ou ajouter une unité comme dans l'exemple ci-dessous :
var vecteurPrenoms:Vector.<String> = Vector.<String>(["bobby","Alfred","Robert"]);
var nbre:int=vecteurPrenoms.length;
trace("nombre d'élément de vecteurPrenoms = "+nbre);
trace(vecteurPrenoms[0]);
vecteurPrenoms.push ( "james");
trace(vecteurPrenoms[3]);
trace("Après ajout nombre d'élément de vecteurPrenoms = "+nbre);
trace("Après ajout nombre d'élément de vecteurPrenoms en directe = "+vecteurPrenoms.length);
Est-ce la bonne méthode ?
Et encore merci.
Sinon, ton anim à l'air super Gremlins7... j'espère que j'arriverais à la comprendre.
gremlins7
Messages postés380Date d'inscriptionmardi 29 avril 2003StatutMembreDernière intervention28 décembre 2009 11 mai 2009 à 19:13
Desolé, j'aurais ptet du preciser dans mon dernier post que si tu indique pas la taille, il faut evidement ranger au moin un élement en utilisant push...autant pour moi