Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Drag'n'Drop Casareccio

  1. #1

    Drag'n'Drop Casareccio

    voglio che draggando un clip su di un'altro accada un evento ma che se il clip in questione non viene rilasciato sull'altro torni alla posizione iniziale, ecco il codice che ho scritto:
    Codice PHP:
    onClipEvent (load) {
        
    posx _x;
        
    posy _y;
    }
    onClipEvent (mouseDown) {
        if (
    hitTest(_root._xmouse_root._ymousefalse)) {
            
    contatto true;
        }
    }
    onClipEvent (mouseMove) {
        if (
    contatto == true) {
            
    this._x _root._xmouse;
            
    this._y _root._ymouse;
            
    posato false;
            
    updateAfterEvent();
        }
    }
    onClipEvent (mouseUp) {
        
    posato true;
        
    contatto false;
    }
    onClipEvent (enterFrame) {
        if (
    posato == true) {
            if (!
    hitTest(_root.quadrato)) {
                if (
    posx<_x) {
                    
    _x--;
                } else if (
    posx>_x) {
                    
    _x++;
                }
                if (
    posy<_y) {
                    
    _y--;
                } else if (
    posy>_y) {
                    
    _y++;
                }
            } else {
                
    //ok
            
    }
        }

    però quando ritorna alla posizione iniziale invece di fermarsi "trema" ossia aumenta e diminuisce di un pixel la sua posizione senza fermarsi mai,
    dove ho sbagliato?

    grazie

  2. #2
    prova così


    onClipEvent (load) {
    posx = Math.round(_x);
    posy = Math.round(_y);
    }
    onClipEvent (mouseDown) {
    if (hitTest(_root._xmouse, _root._ymouse, false)) {
    contatto = true;
    }
    }
    onClipEvent (mouseMove) {
    updateAfterEvent();
    if (contatto == true) {
    this._x = _root._xmouse;
    this._y = _root._ymouse;
    posato = false;
    }
    }
    onClipEvent (mouseUp) {
    posato = true;
    contatto = false;
    }
    onClipEvent (enterFrame) {
    if (posato == true) {
    if (!hitTest(_root.quadrato)) {
    if (posx < Math.round(_x)) {
    _x--;
    } else if (posx > Math.round(_x)) {
    _x++;
    }
    if (posy < Math.round(_y)) {
    _y--;
    } else if (posy > Math.round(_y)) {
    _y++;
    }
    } else {
    // ok
    }
    }
    }
    "...non è detto che sia tardi se non guardi che ora è..."

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    se usi mx :
    codice:
    // metti sul timeline
    mioMc.initX = mioMc._x;
    mioMc.initY = mioMc._y;
    mioMc.altroMc = "altroMc";
    mioMc.onPress = mioMc.startDrag;
    mioMc.onRelease = mioMc.onReleaseOutside = mioMc.stopDrag;
    mioMc.onMouseMove = updateAfterEvent;
    mioMc.onMouseUp = function() {
    	if (this.hitTest(this._parent[this.altroMc])) {
    		// fai le tue azioni
    		trace("beccato");
    	} else {
    		this._x = this.initX;
    		this._y = this.initY;
    	}
    };
    ciao:tongue:

  4. #4
    ottimo, grazie ragazzi (alla soluzione di raffa c'ho pensato stamattina appena sveglio ) quella di polli invece ha un che di più professionale della mia che era piuttosto rustica, stanotte vi provo e vi facciosapere, grazie boyz

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.