Bonsoir à tous !
Je me suis mis à la programmation en ActionScript 3.0 à l'aide du livre "ActionScript 3.0 pour les jeux" de Gary Rosenzweig. Lors d'un sous-chapitre "Définir la profondeur du Sprite" il définit la commande setChildIndex qui permet de changer l'ordre de la liste d'affichage des sprites.
J'aimerais maintenant utiliser cette commande pour changer l'ordre de la liste d'affichage des sprites lors d'un événement comme un clic sur le sprite en question.

J'ai donc un peu bidouillé pour arriver a ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//Début de la Création des sprites
var sprite1:Sprite = new Sprite();
sprite1.graphics.lineStyle(2 , 0x000000);
sprite1.graphics.beginFill(0xCCCCCC);
sprite1.graphics.drawRect(0 , 0 , 200 , 200);
addChild(sprite1);
sprite1.x = 50;
sprite1.y = 50;
 
var sprite2:Sprite = new Sprite();
sprite2.graphics.lineStyle(2 , 0x000000);
sprite2.graphics.beginFill(0xCCCCCC);
sprite2.graphics.drawRect(0 , 0 , 200 , 200);
sprite2.x = 300;
sprite2.y = 50;
addChild(sprite2);
 
var sprite3:Sprite = new Sprite();
sprite3.graphics.lineStyle(2 , 0x000000);
sprite3.graphics.beginFill(0x333333);
sprite3.graphics.drawCircle( 0 , 0 , 25);
sprite3.x = 100;
sprite3.y = 100;
sprite1.addChild(sprite3);
//Fin de la Création des sprites
 
//Ajout d'écouteurs d'événement
sprite1.addEventListener(MouseEvent.CLICK , clickSurSprite);
sprite2.addEventListener(MouseEvent.CLICK , clickSurSprite);
sprite3.addEventListener(MouseEvent.CLICK , clickSurSprite3);
 
//Fonction qui change le parent de sprite3
function clickSurSprite(event:MouseEvent){
	event.currentTarget.addChild(sprite3);
}
 
//ma fonction qui essaye de changer la profondeur de sprite3
function clickSurSprite3(event:MouseEvent){
	setChildIndex(Sprite(event.currentTarget) , 0);
}
Seulement quand je clique sur sprite3 le fenêtre me renvoi ce message :

ArgumentError: Error #2025: Le DisplayObject indiqué doit être un enfant de l'appelant.
at flash.display:: DisplayObjectContainer/setChildIndex()
at creerSprites_fla::MainTimeline/clickSurSprite3()


Pouvez-vous m'aidez à résoudre ce problème fort épineux ?

Voila je vous remercie d'avance pour vos réponses !!