Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    15

    nomi istanza dei mc in collisione

    Ciao a tutti, sto modificando un piccolo script trovato su internet che permette di fare il drag and drop di alcune pedine su una matrice di caselle (una specie di gioco degli scacchi)
    Le mie pedine sono t0,t1,t2... mentre le caselle sono c0,c1,c2...
    Il mio problema si trova nella funzione "test_match(target,obj)" dove ho bisogno di recuperare i nomi delle istanze dei mc che si stanno sovrapponendo (es. t2 sopra c5). Con obj.name ottengo quella del tavolo ma non riesco a ottenere la casella con target.name.
    grazie x qualunque aiuto!



    //coordinate tavoli
    var ori_x;
    var ori_y;

    //aggiungo listener evento su click del mouse sui tavoli
    for each (var item in tavoli)
    {
    item.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
    item.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
    item.buttonMode = true;
    }

    // Define a mouse down handler (user is dragging)
    function mouseDownHandler(evt:MouseEvent):void {
    var object = evt.target;
    ori_x = object.x
    ori_y = object.y
    object.useHandCursor = true;
    object.startDrag();
    }

    function mouseUpHandler(evt:MouseEvent):void {
    var obj = evt.target;
    // obj.dropTarget will give us the reference to the shape of
    // the object over which we dropped the circle.
    var target = obj.dropTarget;

    // If the target object exists the we ask the test_match function
    // to compare moved obj and target where it was dropped.
    if (target != null)
    {
    test_match(target, obj);
    }
    obj.stopDrag();
    }

    //verifica il posizionamento del tavolo spostato sulle caselle della matrice
    function test_match(target,obj) {
    // test if the pairs match
    if (obj != null)
    {

    obj.x = target.x;
    obj.y = target.y;

    obj.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
    obj.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);

    }
    else
    {
    /*obj.x = ori_x;
    obj.y = ori_y;*/

    }
    }

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    a occhio mi pare il contrario, cioè che obj sia l'elemento che stai draggando, mentre target il clip della griglia... apparte questa precisazione, è possibile risalire ai clip direttamente richiamando obj e target... ma comunque il modo di trovarli dipende molto dall'utilizzo che ne vuoi fare poi

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    15
    Originariamente inviato da and80
    a occhio mi pare il contrario, cioè che obj sia l'elemento che stai draggando, mentre target il clip della griglia... apparte questa precisazione, è possibile risalire ai clip direttamente richiamando obj e target... ma comunque il modo di trovarli dipende molto dall'utilizzo che ne vuoi fare poi
    supponiamo che voglia semplicemente scrivere il loro nome in una casella di testo..

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    15
    Ho risolto! Siccome credo possa essere utile ad altri:

    var target = obj.dropTarget.parent;
    e da ora target.name restituisce il nome istanza da me imposto (es. c1)

    PS a Cesare quel che è di Cesare (se nessuno si offende): la risposta preziosa arriva dal forum actionscrip.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.