Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Doppio click su componente List

    Ho letto i vecchi post ma non riesco a far funzionare questa cosa...
    ho una lista, creata con la componente list.
    ho un eventListener change.

    devo fare in modo che io possa eseguire una funzione sul click singolo e un'altra funzione sul click doppio, sull'elemento della lista selezionato.

    L'ho fatto con un timer, funziona... il problema è che al doppio click viene eseguita sia l'istruzione di DOPPIO CLICK che quella di CLICK singolo.

    lo so è contorto... cosa posso fare?
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  2. #2
    Funziona!!!


    // Func checkDoubleClick [ use with MovieClip.prototype.onDoubleClick ]
    function checkDoubleClick(theMovie, oneClick) {
    // andr3a - MX / MX 2004
    var cTime = new Date();
    var secondsTime = cTime.getMilliseconds() + (cTime.getSeconds()*1000);
    var fromMovie = theMovie.doubleCheck[(theMovie.doubleCheck.length-1)];
    if( fromMovie!="done" && Math.abs(fromMovie - secondsTime) >= 300 ) {
    clearInterval(theMovie.intervalDC);
    oneClick();
    }
    else if( fromMovie=="done" ) {
    clearInterval(theMovie.intervalDC);
    }
    }
    // Proto double click
    MovieClip.prototype.onDoubleClick = function(oneClick, twoClicks) {
    // andr3a - MX / MX 2004 [ need checkDoubleClick function ]
    var cTime = new Date();
    var secondsTime = cTime.getMilliseconds() + (cTime.getSeconds()*1000);
    if( this.doubleCheck == undefined || this.doubleCheck[(this.doubleCheck.length-1)]=="done") {
    this.doubleCheck = new Array(secondsTime);
    }
    var difTime = Math.abs(this.doubleCheck[(this.doubleCheck.length-1)] - secondsTime);
    if( difTime < 300 ) {
    this.doubleCheck.push("done");
    twoClicks();
    }
    else {
    this.doubleCheck.push(secondsTime);
    this.intervalDC = setInterval(checkDoubleClick, 20, this, oneClick);
    }
    }


    // Funzione di prova da richiamare al doppio click
    function alClick() {
    trace("1 click ...");
    }


    // Funzione di prova da richiamare al doppio click
    function alDoppioClick() {
    trace("DOPPIO CLICK EFFETTUATO!");
    }





    var myObj = new Object();
    myObj.change=function(){
    myList.onDoubleClick(alClick, alDoppioClick);

    }//chiusa function change


    //attribuzione oggetto ascoltatore alla lista
    myList.addEventListener("change",myObj);
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.