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

    Click o Drag'n drop su uno stesso oggetto

    Ciao a tutti,
    vorrei ottenere qeusto comportamento per l'interazione degli eventi del mouse con un oggetto: se si preme e trascina si ottiene un drag and drop dell'oggetto, mentre se si preme e basta si otteiene un'altro evento.
    Uso le funzioni onRelease e onPress per gestire il drag and drop, quindi non so come gestire il click semplice... mi servirebbe di nuovo onPress ma non posso usarlo due volte!
    Credo di dover creare qualche condizioncina, ma mi sfugge quale...
    potete aiutarmi?
    Grazie
    All'uomo non verrà mai tanto male quanto dall'uomo.

  2. #2
    Un idea potrebbe essere quella di mettere un cotrollo sullo spostamento dell'oggetto al drag and drop: se tra il momento dell'onPress e il momento dell'onRelease l'oggetto in questione non è stato spostato allora il drag and drop viene considerato un click...
    Che dite? Se solo riuscissi a realizzare questo evento potrei valutarne l'efficacia...
    All'uomo non verrà mai tanto male quanto dall'uomo.

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,774
    Ciao.
    Per avere una cosa funzionale dovresti mettere anche un controllo per evitare trascinamenti involontari nel caso di minimi spostamenti dopo il press.
    Ovviamente come per tutte le cose esistono svariate soluzioni.
    Ti posto giusto un esempio fatto al volo..
    Codice PHP:
    function drugndrop() {
        var 
    p:Object = {x:this._xmousey:this._ymouse};// punto iniziale del mouse sul clip
        
    var m:Number 5;// movimento minimo per il quale il d&d non agisce
        
    var mc:MovieClip this;// riferimento del clip

        // evento onRelease richiamato al semplice click
        // (nota: è necessario indicare onReleaseOutside per prevenire l'eventuale rilascio fuori dal clip
        
    mc.onRelease mc.onReleaseOutside=function () {
            
    mc.onRelease mc.onReleaseOutside=mc.onMouseMove=undefined;
            
    trace('Hai eseguito un click su: '+mc);
        };
        
    // controllo il movimento minimo
        
    mc.onMouseMove = function() {
            if (
    Math.abs(mc._xmouse-p.x)>|| Math.abs(mc._ymouse-p.y)>m) {
                
    onDrag();
            }
        };
        
    // funzione richiamata al trascinamento
        
    function onDrag() {
            
    trace('Stai trascinando: '+mc);
            
    // avvio il trascinamento
            
    mc.onMouseMove = function() {
                
    updateAfterEvent();
                
    mc._x mc._parent._xmouse-p.x;
                
    mc._y mc._parent._ymouse-p.y;
            };
            
    // sovrascrivo l'evento onRelease che ora interrompe il trascinamento
            
    mc.onRelease mc.onReleaseOutside=function () {
                
    trace('Trascinamento terminato');
                
    mc.onRelease mc.onReleaseOutside=mc.onMouseMove=undefined;
            };
        }
    }

    tuoMc.onPress drugndrop
    Il sistema può essere applicato a qualsiasi clip, basta assegnare la funzione drugndrop all'evento onPress del clip specifico.

    Attraverso la variabile "m" puoi impostare un valore in pixel per lo spostamento minimo.

    Ho messo dei trace per identificare le varie azioni, ovviamente puoi eliminarli.

    Tieni conto che per il trascinamento ho voluto utilizzare il metodo onMouseMove per permettere il refresh video con updateAfterEvent. Questo rende più fluido il movimento del clip trascinato perché forza il refresh video al movimento del mouse e non al frame rate.
    Volendo si possono comunque utilizzare, con qualche modifica, le specifiche funzioni starDrug e stopDrug.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Scusate il piccolo OT ma... ecco perché tra le altre cose, in As3 è stato aggiunto l'evento click

    @killer: ma come mai vuoi drogare questi poveri clip?!

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,774
    Scusate il piccolo OT ma... ecco perché tra le altre cose, in As3 è stato aggiunto l'evento click
    Giusto. In AS3 si potrebbe gestire meglio il tutto..

    @killer: ma come mai vuoi drogare questi poveri clip?!
    oops scusate l'errore.. ahahah..in effetti c'era qualcosa che mi suonava strano.. forse sono io mezzo drogato
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.