Bonjour,

Je souhaite créer un jeu de taquin mais sans utiliser les librairies déjà existantes, donc de A à Z.

Voilà le principe de base :

Une image est chargée depuis une URL puis découpée dynamiquement en cases qui seront aléatoirement dispersées dans la scène.

Voilà l'ordre que je veux faire :

- Charger l'image dans un movieClip
- Dupliquer le movieClip pour chacune des cases dont j'ai besoin
- Pour chaque nouveau movieClip (nommé 'Case' + i + j, i et j étant les coordonnées de la case), :
¤ placer un masque de la taille d'une case
¤ positionner et redimensionner le masque
¤ positionner le nouveau movieClip (Case + i + j) aléatoirement

Seulement voilà le problème, mes duplicateMovieClip ne fonctionnent pas me voilà bien avancé pour la suite ^^.

Ici, le trace me balance des undefined à gogo ^^

Voici mon 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
stop();
 
var width:Number = 600;
var height:Number = 400;
var background_picture:String;
var xml_url:String = "http://localhost/******/external_ressources/images.xml";
var xmlDoc= new XML();
var nbLignes:Number = 6;
var nbColonnes:Number = 6;
 
 
xmlDoc.ignoreWhite = true;
 
MovieClip.prototype.loadFile = function(file) {
 
	conteneur = this.createEmptyMovieClip("conteneur", 100);
	pic = conteneur.createEmptyMovieClip("img", 102);
	crt = conteneur.createEmptyMovieClip("control", 103);
 
	ldr = conteneur.attachMovie("loader", "loader", 104, {_xscale:100, _yscale:100, _x:-83, _y:0});
	ldr.bar._xscale = 0;
	pic.loadMovie(file);
 
	crt.onEnterFrame = function() {
 
		pic._visible = false;
 
		transfert = Math.round(pic.getBytesLoaded()*100/pic.getBytesTotal());
		ldr.bar._xscale = transfert;
 
		if (pic.getBytesTotal()>4) {
			if (pic.getBytesLoaded() == pic.getBytesTotal()) {
				delete crt.onEnterFrame;
				removeMovieClip(ldr);
				pic._visible = true;
 
				pic._xscale = width * 100 / pic._width;
				pic._yscale = height * 100 / pic._height;
 
				pic._x = - pic._width/2;
				pic._y = - pic._height/2;
				for(var i = 1 ; i <= nbColonnes ; i++){
					for(var j = 1 ; j <= nbLignes ; j++){
						conteneur.duplicateMovieClip(pic,"case" + i + j, 105 + (j-1) * nbColumns + i);
						trace(conteneur['case'+i+j]._x);
					}
				}							
			}
		}		
	};
};
 
xmlDoc.onLoad = function(){
	background_picture = this.firstChild.childNodes[1].attributes.url;
	bg_center.loadFile(background_picture);
};
 
xmlDoc.load(xml_url);
nb: la seule frame de mon animation contient un movieClip 'bg_center' placé au centre.