[FLASH MX2004] Problème de onMouseUp
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
Code:
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);};
} |
MapHexagone.as
Code:
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();
}
} |
Utilisation
Code:
1 2 3
|
import MapHexagone;
var mapHex:MapHexagone = new MapHexagone(_root, 32); |
En plus du fait que tous les MovieClp réagissent aux clic, l'instruction trace(this._id); retourne undefined...
Quelqu'un peut-il m'aider à comprendre ??
merci d'avance!
@++
NeoMan