Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Finestre dragabili, doppio click e altre funzionoi

    Espongo brevemente il mio problema. Ho un filmato con 10 immagini che vengano caricate in diversi mc, queste immagine sono dragabili e sovrapponibili con la funzione famosa swap_Depths...
    Se uno preme sopra la foto la può spostare lasciando il pulsante premuto e nel frattempo si ingrandisce.

    Io vorrei aggiungere a tutto ciò:

    1. dare al trascinamento un ritardo, ovvero le foto devono seguire il mouse ma in ritardo.
    2. rendere la zona di drag contenuta, e se uno esce una volta mollato il tasto del mouse elasticamente la foto torna nella zona draggabile.
    3. rendere l'immagine ingrandibile solo con una funziona doppio click di cui quasi ignore la reale possibilità di progettazione

    In modo da trascinare se voglio le foto senza ingrandirle e premere due volte sulla foto che voglio ingrandire.

    Bene o male o reperito tutte queste tre funzioni in giro, ma proprio non riesco ad integrarle.

    Lo script di partenza è questo:

    for(i=1;i<=10;i++){
    this["c"+i].foto.loadMovie("HB"+i+".jpg")
    this["b"+i].foto.loadMovie("HB"+i+".jpg")
    this["c"+i]._rotation=random(100)-50
    this["c"+i]._xscale=this["c"+i]._yscale=50

    this["c"+i].onPress=function(){
    this.startDrag(true)
    open_pic(this._name)
    }
    this["b"+i].onPress=function(){
    _level0["c"+substring(this._name,2,1)].swapDepths(100)
    }
    this["c"+i].onRelease=function(){
    this.stopDrag()
    _level0.premuto=false
    close_pic(this._name)
    }
    }

    function open_pic(nome){
    this[nome].swapDepths(100)
    _level0.val_rot=this[nome]._rotation
    this[nome]._rotation=0
    this[nome].onEnterFrame=function(){
    if(this._xscale<100){this._xscale=this._yscale+=5}
    else{delete this.onEnterFrame}
    }
    }

    function close_pic(nome){
    trace("passato su "+nome)
    this[nome].onEnterFrame=function(){
    if(this._xscale>50){this._xscale=this._yscale-=5}
    else{
    trace(_level0.val_rot)
    this._rotation=_level0.val_rot;
    delete this.onEnterFrame
    }
    }
    }





    Cordiali saluti, un grazie di cuore a chi mi darà una mano, e darà una mano a far crescere il forum.

    Fabio Canovi

  2. #2
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,322
    allora dovremo esserci

    massimox
    minimox
    massimoy
    minimoy
    questo è il tuo quadrato virtuale e i clip li devi posizionare all'inteno di questo quadrato virtuale perchè prendono le loro posizioni iniziali

    doppio click per aprire
    doppio click per chiudere



    //da qui in poi comincia lo script che devi copiare.........








    z = true;
    aperta=false

    massimox=400
    minimox=100
    massimoy=350
    minimoy=50

    for (i=1; i<=10; i++) {
    this["c"+i].foto.loadMovie("HB"+i+".jpg");
    this["b"+i].foto.loadMovie("HB"+i+".jpg");
    this["c"+i]._rotation = random(100)-50;
    this["c"+i]._xscale = this["c"+i]._yscale=50;
    this["c"+i].onMouseDown = function() {
    trace(z);
    if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
    if (getTimer()-click<400) {
    if (z == true) {
    if (aperta==false){
    open_pic(this._name);
    }else{
    close_pic(this._name);
    }
    z = false;

    } else if (z == false) {
    z = true;
    }
    } else {
    click = getTimer();
    }
    }
    };
    this["c"+i].onPress = function() {
    posizionex=this._x
    posizioney=this._y
    trace("posizione "+posizionex)

    this.onEnterFrame = function() {
    _level0["c"+substring(this._name, 2, 1)].swapDepths(100);
    dif = _root._xmouse-this._x;
    dif2 = _root._ymouse-this._y;
    this._x += dif/10;
    this._y += dif2/10;
    trace(x++);
    };
    };
    this["c"+i].onReleaseOutside = function() {
    if(this._x<minimox or this._x>massimox or this._y<minimoy or this._y>massimoy){
    ritorna(this._name)
    }else{
    delete this.onEnterFrame;
    }
    }

    this["c"+i].onRelease = function() {
    if(this._x<minimox or this._x>massimox or this._y<minimoy or this._y>massimoy){
    ritorna(this._name)
    }else{
    delete this.onEnterFrame;
    }
    };
    }
    function open_pic(nome) {
    aperta=true
    this[nome].swapDepths(100);
    _level0.val_rot = this[nome]._rotation;
    this[nome]._rotation = 0;
    this.onEnterFrame = function() {
    trace("ciao")
    if (this[nome]._xscale<100) {
    this[nome]._xscale = this[nome]._yscale += 5;
    } else {
    delete this.onEnterFrame;
    }
    };
    }
    function close_pic(nome) {
    aperta=false
    trace("passato su "+nome);
    this.onEnterFrame = function() {
    if (this[nome]._xscale>50) {
    this[nome]._xscale = this[nome]._yscale -= 5;
    } else {
    trace(_level0.val_rot);
    this[nome]._rotation = _level0.val_rot;
    delete this.onEnterFrame;
    }
    };
    }

    function ritorna(nome){
    trace("ok")


    this[nome].onEnterFrame = function() {

    diff =int(this._x-posizionex)
    diff2 =int(this._y-posizioney)
    this._x -= diff/10;
    this._y -= diff2/10;
    trace(x++);
    if(diff==0){
    delete this.onEnterFrame
    }
    }
    }

  3. #3

    grazie...un altra cosettina

    Intanto ti ringrazio...era proprio quello che volevo, ti volevo chiedere solo due cosettine...

    -quale è il parametro che fa variare il ritardo nel trascinamento?
    -quale è il parametro che fa variare quando rilascio la foto fuori
    dal mio quadrato dove ritorna
    -è possibile che una volta aperta la foto con il doppio click se ne
    voglio aprire un altra e premo su un altra foto piccola quella che
    era grande torni piccola senza ripremerci due volte?


    grazie, a buon rendere.Fabio

  4. #4

    grazie...un altra ultima cosettina

    altra piccola cazzatina.

    Mentre trascino la foto, mollo il cursore, e la foto si ferma quasi istantaneamente. Invece vorrei che continuasse per un po il trascinamento...capisci?

    grazie mille. Fabio

  5. #5

    ..

    mi sono accorto di un altro piccolo baco...quando ho la finestra aperta della foto ingrandita, se ci premo sopra ingrandisce le foto sotto ovvero vuol dire, presumo, che l'area sensibile non è la foto ingrandita ma probabilmente la foto piccola, e perciò la foto sotto passa in primo piano. Invece la foto ingrandita deve essere in primo piano rispetto alle foto sotto ad essa....

    con questo è tutto...

    grazias

  6. #6
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,322
    z = true;
    aperta = false;
    massimox = 400;
    minimox = 100;
    massimoy = 350;
    minimoy = 50;
    for (i=1; i<=10; i++) {
    //this["c"+i].foto.loadMovie("HB"+i+".jpg");
    //this["b"+i].foto.loadMovie("HB"+i+".jpg");
    this["c"+i]._rotation = random(100)-50;
    this["c"+i]._xscale = this["c"+i]._yscale=50;
    this["c"+i].onMouseDown = function() {
    //trace(z);
    if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
    if (getTimer()-click<400) {
    if (z == true) {
    if (aperta == false) {
    open_pic(this._name);
    } else {
    close_pic(this._name);
    }
    z = false;
    } else if (z == false) {
    z = true;
    }
    } else {
    click = getTimer();
    }
    }
    };
    this["c"+i].onLoad = function() {
    };
    this["c"+i].onPress = function() {
    posizionex = this._x;
    posizioney = this._y;
    _root.xv = this._x;
    _root.yv = this._y;
    //trace("posizione "+posizionex)
    this.onEnterFrame = function() {
    _root.tempo++;
    calcolox = ((this._x-posizionex)*7)/tempo;
    calcoloy = ((this._y-posizioney)*7)/tempo;
    trace(calcolox);
    _level0["c"+substring(this._name, 2, 1)].swapDepths(100);
    dif = _root._xmouse-this._x;
    dif2 = _root._ymouse-this._y;
    this._x += dif/10;
    this._y += dif2/10;
    //trace(x++);
    };
    };
    this["c"+i].onReleaseOutside = function() {
    if (this._x<minimox or this._x>massimox or this._y<minimoy or this._y>massimoy) {
    ritorna(this._name);
    } else {
    ritorna2(this._name);
    }
    };
    this["c"+i].onRelease = function() {
    if (this._x<minimox or this._x>massimox or this._y<minimoy or this._y>massimoy) {
    ritorna(this._name);
    } else {
    ritorna2(this._name);
    }
    };
    }
    function open_pic(nome) {
    aperta = true;
    this[nome].swapDepths(100);
    _level0.val_rot = this[nome]._rotation;
    this[nome]._rotation = 0;
    this.onEnterFrame = function() {
    //trace("ciao")
    if (this[nome]._xscale<100) {
    this[nome]._xscale = this[nome]._yscale += 5;
    } else {
    delete this.onEnterFrame;
    }
    };
    }
    function close_pic(nome) {
    aperta = false;
    //trace("passato su "+nome);
    this.onEnterFrame = function() {
    if (this[nome]._xscale>50) {
    this[nome]._xscale = this[nome]._yscale -= 5;
    } else {
    //trace(_level0.val_rot);
    this[nome]._rotation = _level0.val_rot;
    delete this.onEnterFrame;
    }
    };
    }
    function ritorna(nome) {
    //trace("ok")
    this[nome].onEnterFrame = function() {
    diff = int(this._x-posizionex);
    diff2 = int(this._y-posizioney);
    this._x -= diff/10;
    this._y -= diff2/10;
    //trace(x++);
    if (diff == 0) {
    delete this.onEnterFrame;
    }
    };
    }
    function ritorna2(nome) {
    _root.freno = 0;
    _root.tempo = 0;
    this[nome].onEnterFrame = function() {
    freno += 2;
    this._x += calcolox/freno;
    this._y += calcoloy/freno;
    if (freno>50) {
    delete this.onEnterFrame;
    }
    };
    }







    prova questo
    l'ultima tua frase l'ho letta 12 volte ma non ho capito niente
    puoi spiegarti meglio grazie

  7. #7

    scusa il mio dislessismo

    Per farla breve...

    Vado su una foto, doppioclicco, si ingrandisce. Premo sulla foto per esempio per spostarla e mi si apre la foto sotto...capito?Quella in secondo piano...quindi vuole dire secondo me che la zona sensibile della foto ingrandita rimane lo spazio della foto piccola...e perciò se non sono in quello spazio clicco la foto sotto pur non vedendola...
    dio mio spero di essermi spiegato bene questa volta...ma mi sento un po dislessico oggi....


    grazie.

    fabio

  8. #8

    ...

    l'area sensibile della foto mi sono accorto che non è la foto completa ma solo una parte...perchè?

  9. #9
    scusa l'ignoranza ma cos'è un mc?

  10. #10

    risolviamola così

    se mi dai la tua mail ti spedisco l'swf così capisci quali sono i bugs dello script...ok?

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.