begin process at 2012 02 04 13:43:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

 > FAIRE TOURNER UN TABLEAU (ARRAY)

FAIRE TOURNER UN TABLEAU (ARRAY)


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ActionScripts Classé sous :array, rotation, tableau, push-pop, shift-unshift Niveau :Débutant Date de création :20/11/2007 Date de mise à jour :20/11/2007 10:35:16 Vu :7 052

Auteur : Girou

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Il est parfois utile ou nécessaire de faire 'tourner' un Array, c'est à dire de décaler tout le contenu du tableau vers la gauche (premier élément devient dernier, 2eme devient premier,...) ou vers la droite.
Voici une methode très simple pour réaliser cette manipulation.

Source

  • var my_array:Array=['1','2','3','4','5'] //le tableau que l'on veut faire tourner
  • // SHIFT ARRAY TO RIGHT (dernier élément devient le premier)
  • my_array.unshift(my_array.pop());
  • trace(my_array.join('-'));
  • // SHIFT ARRAY TO LEFT (premier élément devient le dernier)
  • my_array.push(my_array.shift());
  • trace(my_array.join('-'));
  • et pour ceux qui aiment les classes (comme moi)
  • class arrayRotation {
  • // Private constructor
  • private function arrayRotation() {}
  • // Static function Rotate
  • // theArray : l'Array qu'on souhaite manipuler
  • // si theArray n'est pas défini, une nouvelle Array vide est renvoyée
  • // _direction : chaine de caractère indiquant la direction ('left' ou 'right')
  • // si _direction non défini ou ni 'left' ni 'right' l'Array d'origine est renvoyée
  • static function Rotate(theArray:Array,_direction:String):Array
  • {
  • if (theArray==undefined) return new Array();
  • _direction=_direction.toUpperCase();
  • // Rotation of array
  • switch(_direction)
  • {
  • case 'RIGHT':
  • // SHIFT ARRAY TO RIGHT
  • theArray.unshift(theArray.pop());
  • break;
  • case 'LEFT':
  • // SHIFT ARRAY TO LEFT
  • theArray.push(theArray.shift());
  • break;
  • }
  • return theArray
  • }
  • }
var my_array:Array=['1','2','3','4','5'] //le tableau que l'on veut faire tourner
// SHIFT ARRAY TO RIGHT (dernier élément devient le premier)
my_array.unshift(my_array.pop());
trace(my_array.join('-'));
// SHIFT ARRAY TO LEFT (premier élément devient le dernier)
my_array.push(my_array.shift());
trace(my_array.join('-'));

et pour ceux qui aiment les classes (comme moi)

class arrayRotation {
	// Private constructor
	private function arrayRotation() {}
	// Static function Rotate
	// theArray :   l'Array qu'on souhaite manipuler
	//              si theArray n'est pas défini, une nouvelle Array vide est renvoyée
	// _direction : chaine de caractère indiquant la direction ('left' ou 'right')
	//              si _direction non défini ou ni 'left' ni 'right' l'Array d'origine est renvoyée
	static function Rotate(theArray:Array,_direction:String):Array
	{
		if (theArray==undefined) return new Array();
		_direction=_direction.toUpperCase();
		// Rotation of array
		switch(_direction)
		{
			case 'RIGHT':
				// SHIFT ARRAY TO RIGHT
				theArray.unshift(theArray.pop());
				break;
			case 'LEFT':
				// SHIFT ARRAY TO LEFT
				theArray.push(theArray.shift());
				break;
		}
		return theArray
	}
}

 Conclusion

Ce n'est pas vraiment une source, c'est plus un petit truc de programmation...


 Historique

20 novembre 2007 10:35:16 :
correction syntaxe

 Sources du même auteur

Source avec Zip Source avec une capture STAR-DECODER : TROUVEZ LE CODE !
Source avec Zip PARSER UN FICHIER TEXTE POUR EN EXTRAIRE DES VARIABLES
Source avec Zip Source avec une capture SYSTEME DE VOTE FLASH - PHP / MYSQL
Source avec Zip CLASSE DYNAMICBAR UNE BARRE PARAMETRABLE SANS LES COMPOSANTS...

 Sources de la même categorie

Source avec Zip ZOOM SUR UNE IMAGE par yasdar
Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture PARTICULE SYSTEM par yasdar
Source avec Zip Source avec une capture GALLERIE PHOTO AVEC XML par yasdar
Source avec Zip Source avec une capture MP3 LAYER NICE &SMALL par yasdar

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture TOURNER UN OBJEC VERS LA SOURIS... par top30
REDIMENSIONNER ET TOURNER UN CLIP A L'AIDE DES FLECHES par otomat
Source avec Zip Source avec une capture UTILISATION DYNAMIQUE D'UN TABLEAU par ariden
Source avec Zip Source avec une capture RECHERCHE D'INFORMATION VIA UN TABLEAU par ariden

Commentaires et avis

Commentaire de top30 le 21/11/2007 09:10:32

J'aime bien l'edée de faire tourner dans un sens, ou dans l'autre. Chose ququel j'avais pas penser.
Mais j'aurais plutot ecris la classe comme suit :

// AS2
class [monChemin].ArrayRotation
{
   public function ArrayRotation ($aWork : Array, $nSens : Number, $nTime : Number )
   {
      while (nTime --)
      {
         switch ($nSens )
         {
            case 1 :
            $aWork.unshift ($aWork.pop ());
            break ;
            //
            default :
            $aWork.push ($aWork.shift ());
         }
      }
   }
}
//

// AS3
package [monPackage]
{
   public class ArrayRotation
   {
      public function ArrayRotation ($aWork : Array, $nSens : int = 1, $nTime : int = 1 )
      {
         while ($nTime --)
         {
            switch ($nSens )
            {
               case 1 :
               $aWork.unshift ($aWork.pop ());
               break ;
               //
               default :
               $aWork.push ($aWork.shift ());
            }
         }
      }
   }
}


//  Utilisation //
   var test : Array = ('123456').split ('');
   trace (test );
   // 1,2,3,4,5,6
   //
   new ArrayRotation (test);
   trace (test );
   // 6,1,2,3,4,5
   //
   new ArrayRotation (test, -1, 3 );
   trace (test );
   // 3,4,5,6,1,2

Commentaire de top30 le 21/11/2007 09:11:28 7/10

J'aime bien l'idée :
7/10

Commentaire de zoolivier le 21/11/2007 15:00:50

oui, bravo original et apporteur d'idée

Commentaire de Girou le 22/11/2007 08:52:46

@TOP30 : Excellente idée !!! J'ai développé cette 'astuce' dans une application ou je ne devais que déplacer d'une unité vers la gauche ou la droite mon tableau, mais ta proposition est nettement plus générique. Je prend !!! 10/10 :o)

Commentaire de dj_ouf le 24/11/2007 01:09:57

nikel pour un tetris! rotation de pièces!

Commentaire de Improve le 27/11/2007 23:46:21

Fonctionnelle avec si peu de lignes. C'est ok, je l'ai bien saisi. Que dire des params . . . et le switch(){}. Merveilleux. @+

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ARRAY DYNAMIQUE PRISE DE TETE [ par geus91 ] slt :)je voudrais savoir si quelquun serait comment faire pour envoyer le contenu d'un tableau array, dans un fichier txt et ensuite recharger le cont tableau a plusieurs dimensions [ par lilyvirus ] avec les tableauw on peux faire tout bettement     answer= new Array();     answer[0]="coucou"     trace Problème de menu [ par Aleanar ] BonjourJe voudrais créer un menu en mettant dans deux tableau les nom d'occurence des boutons et les les liens de chaque boutons.Sauf que ça ne marche text field variable dans un tableau? [ par knas74 ] nasbonjour à tous j'aimerais savoir comment peut-on insérer les noms de variables de type texte dynamique dans un tableauje vous soumets mon code, le A propos des tableaux [ par malicious06 ] Bonjour, 1) Est-ce que le New est obligatoire lorsqu'on créer un tableau ? J'ai essayé: tab=Array(10); tab[0]="....."; . . . tab[9]="....... galerie images ds un array avec suppression images aléatoire [ par stephke ] hello tout le monde!!!voila j'ai 150 petites phtos sur ma scène que j'ai importés et déposées manuellement sur la scène (pr raisons esthétiques).j'aim Vider un Array [ par cguiltaz87 ] Bonjour tout le monde,    j'ai un petit soucis pour vider un tableau. Ce n'est qu'un tableau à une dimension, et après avoir Array et suppression d'élément [ par inaden ] Bonjour,voila, j'ai un tableau (array) qui s'appelle diag, un nombre aléatoire qui s'appelle sorti. J'ai essayé de virer l'élément du tableau correspo Affichage - Tableau [ par Cath_ ] Bonjour,J'aimerais créer  un menu d'affichage (ex : comme un menu d'imprimante).  C'est un menu que pour naviguer à l'intérieur il faut appuyer sur de Préchargement d'image [ par Kangouroops ] Bonjour tout le monde, Je viens à vous pour une petite question, Je suis entrain de faire un générateur d'avatar: http://hanser.perso.neuf.fr/Amaury


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales