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); } }

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?
Rispondi quotando