Bonjour, j'ai un léger soucis de comphréension en AS3, voici le problème:
Je veux créer plusieurs classes et les faire fonctionner entre eux chacune de ces classes sera appelé à la fin dans le main
les classes cités plus haut chargerais xml, image, video, swf...

Mon problème étant je ne comprend pas comment fonctionne AS3 dans l'ordre de compilation ou peut etre autre choses...
J'ai donc suivis un tuto pour une barre de preload qui apparement permeterrait d'afficher une barre de chargement pour différents type de fichier...

Seulement en compilant je tombe sur cette erreur :

TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
at Preloader$iinit()
at Main$iinit()

Que je ne comprend pas bien sur

Donc voici mon main :
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
 
package {
 
	import flash.display.Sprite;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.events.Event;
 
	public class Main extends Sprite {
 
		//variables
 
		//constructeur
		public function Main() {
			new Preloader();
		}
 
		//methodes
 
	}//end of main
 }//end of package
et voici la classe preload.as :

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
 
package {
 
	//import
	import flash.display.MovieClip;//a voir pour le modifier par sprite...
	import flash.display.Shape;
	import flash.display.Loader;
 
	import flash.text.TextField;
	import flash.filters.GlowFilter;
	import flash.net.URLRequest;
 
	import flash.errors.IOError;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.ProgressEvent;
 
	[SWF( width='600',height='400',frameRate='30',backgroundColor='#000000')]
 
	public class Preloader extends MovieClip {
 
		//_______________________________________________constantes:
		private const 	_couleur		:uint			=	0xFF0000;
		private const 	_adresse		:String			=	"data/images/design_site_perso.jpg";
 
		//________________________________________________variables:
		private var 	_filtre			:GlowFilter;
		private var 	_barreCharge	:MovieClip;
		private var 	_infos			:TextField;
		private var 	_barre			:Shape;
		private var 	_loader			:Loader;
		private var 	_req			:URLRequest;
		private var		_centreY		:int;
 
 
 
		//____________________________________________constructeurs:
		public function Preloader():void {
			_barreCharge		=	new MovieClip();
			_infos				=	new TextField();
			_barre				=	new Shape();
			_loader				=	new Loader();
			_filtre				=	new GlowFilter(_couleur,1,10,10,1,3,false,false);
			_req				=	new URLRequest(_adresse);
 
			_infos.textColor	=	_couleur;
			_infos.width		=	28;
			_centreY			=	stage.stageHeight/2;
 
			_barre.graphics.beginFill(_couleur);
			_barre.graphics.drawRect(0,stage.stageHeight/2,1,4);
			_barreCharge.filters = [_filtre];
 
			this.addChild(_barreCharge);
			this.addChild(_infos);
			this._barreCharge.addChild(_barre);
 
			_loader.load(_req);
			_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, $avancement);
			_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, $chargementTermine);
			_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, $erreur);
 
		}
 
		//_______________________________________________methodes:
 
		public function $avancement(evt:ProgressEvent):void {
 
			var _pct:uint = Math.round(evt.bytesLoaded/evt.bytesTotal * 100);
			_infos.text = _pct + "%"
			_infos.y = _centreY + 5;
			_infos.x = _barreCharge.x + _barreCharge.width + 5;
			_barreCharge.width =stage.stageWidth / 100 * _pct;
 
		}
 
		public function $chargementTermine(evt:Event):void {
 
			_loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, $avancement);
			_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, $chargementTermine);
			_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, $erreur);
 
			this.removeChild(_infos);
			this.removeChild(_barreCharge);
 
			_infos = null;
			_barreCharge = null;
 
			this.addChild(_loader);
 
		}
 
		public function $erreur(evt:Event):void {
 
			_loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, $avancement);
			_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, $chargementTermine);
			_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, $erreur);
 
			this.removeChild(_barreCharge);
			_barreCharge = null;
 
			_infos.text = "Erreur de Chargement...";
			_infos.width = 150;
			_infos.y = _centreY;
			_infos.x = stage.stageWidth - _infos.width/2;
 
		}
	}//end of class
}//end of package
Je ne comprend pas bien comment la compilation et l'appelle des classes fonctionne exactement si quelqu'un pourrait m'expliquer je vous en remercie d'avance.