metti i tuoi clip in due array, es: arrayCelle e arraySegni e poi fai un doppio ciclo for al rilascio del pulsante:
codice:
pulsante.onRelease = function() {
for (i=0; i<arrayCelle.length; i++) {
for (j=0; j<arraySegni.length; j++) {
if (arrayCelle[i].hitTest(arraySegni[j])) {
//qui piazzi il codice che vuoi
}
}
}
};
per chiarirti le idee (o complicartele
) prova questo codice d'esempio:
codice:
arrayCelle = new Array();
arraySegni = new Array();
//creo le celle
for (i=0; i<10; i++) {
_root.createEmptyMovieClip("cella"+i, i);
_root["cella"+i]._y = 200;
_root["cella"+i]._x = 5+55*i;
_root["cella"+i].clipSovrapposti = new Array();
disegnaCella(_root["cella"+i], "cella "+i);
arrayCelle.push(_root["cella"+i]);
}
//creo i segni +
for (i=0; i<10; i++) {
_root.createEmptyMovieClip("segno_più"+i, i+10);
disegnaSegno(_root["segno_più"+i], "+"+i);
_root["segno_più"+i]._y = 50;
_root["segno_più"+i]._x = 5+55*i;
arraySegni.push(_root["segno_più"+i]);
}
//creo i segni =
for (i=0; i<10; i++) {
_root.createEmptyMovieClip("segno_uguale"+i, i+20);
disegnaSegno(_root["segno_uguale"+i], "="+i);
_root["segno_uguale"+i]._y = 80;
_root["segno_uguale"+i]._x = 5+55*i;
arraySegni.push(_root["segno_uguale"+i]);
}
//creo i segni -
for (i=0; i<10; i++) {
_root.createEmptyMovieClip("segno_meno"+i, i+30);
disegnaSegno(_root["segno_meno"+i], "-"+i);
_root["segno_meno"+i]._y = 110;
_root["segno_meno"+i]._x = 5+55*i;
arraySegni.push(_root["segno_meno"+i]);
}
//creo il pulsante
_root.createEmptyMovieClip("pulsante", 40);
pulsante._x = 250;
pulsante._y = 300;
disegnaCella(_root.pulsante, "pulsante");
//imposto azioni pulsante
pulsante.onRelease = function() {
for (i=0; i<arrayCelle.length; i++) {
var toccato = false;
trace("\r"+arrayCelle[i]._name+" è toccata da:");
for (j=0; j<arraySegni.length; j++) {
if (arrayCelle[i].hitTest(arraySegni[j])) {
trace(arraySegni[j]._name);
toccato = true;
}
}
if (!toccato) {
trace("nessun clip");
}
}
};
//rendo i segni draggabili
for (i=0; i<arraySegni.length; i++) {
arraySegni[i].onPress = function() {
this.startDrag(false);
};
arraySegni[i].onRelease = function() {
this.stopDrag();
};
}
//funzioni per disegnare
function disegnaCella(clip, testo) {
with (clip) {
beginFill(0xCCCCCC, 100);
lineStyle(0, 0x000000, 100);
lineTo(50, 0);
lineTo(50, 20);
lineTo(0, 20);
lineTo(0, 0);
endFill();
}
clip.createTextField("nome", 0, 0, 0, 50, 20);
clip.nome.selectable = false;
clip.nome.text = testo;
}
function disegnaSegno(clip, s) {
with (clip) {
beginFill(0xCCCCCC, 100);
lineStyle(0, 0x000000, 100);
lineTo(20, 0);
lineTo(20, 20);
lineTo(0, 20);
lineTo(0, 0);
endFill();
}
clip.createTextField("nome", 0, 0, 0, 20, 20);
clip.nome.selectable = false;
clip.nome.text = s;
}