Ciao a tutti! sto sviluppando un gioco in flash basato sul drag&drop modificando uno script che ho trovato su un libro. 5 oggetti devono esser rilasciati in 5 punti predefiniti (in realtà il punto arrivo è un solo mc e la posizione di ogni oggetto e calcolata in base al punto di registrazione). utilizzando onClipEvent(); il codice sta su un mc vuoto all'esterno dello stage. Lo script funziona correttamente solo che vorrei che gli oggetti rilasciati nel posto sbagliato ritornassero al punto di partenza, ho provato ad aggiungere una parte di codice (vedi commenti) che funziona in parte nel senso che rilasciando un oggetto che nn soddisfa hitTest() questo si sposta solo che non finisce mai al posto di partenza... ho provato a metter delle azioni di trace per vedere se i risultati di "prelevo" e "appoggio" coincidono. ed effettivamenti i risultati sono gli stessi perchè l'obj si sposta nel punto sbagliato?

se non mi son spiegato vi carico il fla su un server...

plz help!

thnks//k01

codice:
onClipEvent (mouseDown) {
	// prendo la posizione del mouse
	my_x = _root._xmouse;
	my_y = _root._ymouse;
	startPieceX = my_x;
	startPieceY = my_y;
	trace("prelevo"+startPieceX);
	trace("prelevo"+startPieceY);

	// ciclo tra i pezzi cercando l'hit
	for (x=0; x<6; x++) {
		for (y=0; y<4; y++) {
			piece = _root[x+"-"+y];

			//cerco controllo se c'è un pezzo sotto il cursore e se non è gia stato posizionato
			if (piece.hitTest(my_x, my_y) and (piece._alpha<100)) {
				// inizio il drag
				piece.startDrag();

				// uscita dal ciclo
				x = 6;
				y = 4;
				break;
			}
		}
	}
}

onClipEvent (mouseUp) {
	// stop drag
	stopDrag();

	// calcolo la distanza del centro del pezzo dal centro dell'outline

	dx = _root.outline._x-piece._x;
	dy = _root.outline._y-piece._y;
	dist = Math.sqrt(dx*dx+dy*dy);

	// se abbastanza vicino lo posiziono correttamente
	if (dist<10) {
		piece._x = _root.outline._x;
		piece._y = _root.outline._y;

		// rimettendo l'alpha a 100 blocco il pezzo
		piece._alpha = 100;//QUESTA è LA MIA AGGIUNTA
	} else { //se non è abbastanza vicino alla posizione lo rimetto al posto di partenza
		piece._x = startPieceX;
		piece._y = startPieceY;
		trace("appoggio"+startPieceX);
		trace("appoggio"+startPieceY);
	}
}