Bonjour à tous!
Je génère dynamiquement des MovieClip et je leur applique une procédure à leur évènement onMouseUp. Le problème c'est que tous les MovieClip réagissent au clic...
Voici un résumé des différents codes :
Hexagone.as
MapHexagone.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 class Hexagone { static var COUNTER:Number=0; private var _id:Number; private var _canvas:MovieClip; private var _owner:MovieClip; public function Hexagone(aOwner:MovieClip, aX:Number, aY:Number) { this._id = ++Hexagone.COUNTER; this._owner = aOwner; this._canvas = this._owner.createEmptyMovieClip("hexagone" + this._id, this._owner.getNextHighestDepth()); this._canvas.onMouseUp = this.onMouseUp; this._couleur = new Color(this._canvas); this.setPosition(aX, aY); this.draw(); } public function onMouseUp():Void {trace(this._id);}; }
Utilisation
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 class MapHexagone { static var COUNTER=0; private var _id:Number; private var _owner:MovieClip; private var _canvas:MovieClip; private var _cases:Array; private var _nbColonnes:Number; private var _nbLignes:Number; private var _taille:Number; private var _buffCoucheHexa:Array; private function init() { var i:Number; var j:Number; var tmp:Array; this._id=++MapHexagone.COUNTER; this._canvas = this._owner.createEmptyMovieClip("mapHexagone" + this._id, this._owner.getDepth()); for(i=0; i<this._nbColonnes; i++) { tmp = new Array(); for(j=0; j<this._nbLignes; j++) tmp.push(null); this._cases.push(tmp); tmp=null; } for(i=0; i<this._nbColonnes; i++) for(j=0; j<this._nbLignes; j++) this.createCase(i, j); } private function createCase(aColonne:Number, aLigne:Number) { var x:Number; var y:Number; ... this._cases[aColonne][aLigne]=new Hexagone(this._canvas, x, y); } public function MapHexagone(aOwner:MovieClip, aTaille:Number) { this._owner=aOwner; this._type=aType; this._taille=aTaille; this.init(); } }
En plus du fait que tous les MovieClp réagissent aux clic, l'instruction trace(this._id); retourne undefined...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 import MapHexagone; var mapHex:MapHexagone = new MapHexagone(_root, 32);
Quelqu'un peut-il m'aider à comprendre ??
merci d'avance!
@++
NeoMan
Partager