Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592

    on enter frame che non vanno...

    ciao...

    ho questo codice su un MC sul 4° frame della mia timeline principale, e questo funziona:
    codice:
    onClipEvent(enterFrame){
    	var altezza = Math.round((_root.temp1 * _root.ALTMAX)/100);
    	if(this._height <= altezza){
    		this._height+=5;
    	}
    	else{
    		_root.nextFrame();
    	}
    	if(this._yscale <= 1000){
    		_root.altezza._y = 370 - this._height;
    	}else{
    		 delete this.onEnterFrame;
    	}
    }
    questo mi ridimensiona un oggetto (barra) e calcola l'altezza del testo dinamico "altezza".
    Quando ha terminato di salire, cioè di ridimensionarsi, passa oltre, va in play: e fino a qui è tutto OK.
    Dopo alcuni frame c'è un altro MC che dovrebbe fare la stessa cosa, avendo lo stesso codice:

    codice:
    onClipEvent(enterFrame){
    	var altezza2 = Math.round((_root.temp2 * _root.ALTMAX)/100);
    	if(this._height <= altezza2){
    		this._height+=5;
    	}
    	else {
    		_root.nextFrame();
    	}
    	if(this._yscale <= 1000){
    		_root.altezza2._y = 370 - this._height;
    	}else{
    		 delete this.onEnterFrame;
    	}
    }
    ma così non è: l'animazione parte, ma se metto uno stop sulla timeline principale per farlo fermare, non c'è verso di stopparlo. e partono tutte le animazioni successive a questa, senza colpo ferire.
    è possibile che sbaglio qualcosa, o è "onenterframe" che ha una limitazione in questo senso e io non la conosco???


    ringrazio in anticipo qualsiasi aiuto...

  2. #2

    Re: on enter frame che non vanno...

    Originariamente inviato da telegio
    ...
    ho questo codice su un MC sul 4° frame della mia timeline principale, e questo funziona:
    ...
    Dopo alcuni frame c'è un altro MC che dovrebbe fare la stessa cosa, avendo lo stesso codice:
    ma così non è: l'animazione parte, ma se metto uno stop sulla timeline principale per farlo fermare, non c'è verso di stopparlo.
    ...
    Potresti chiarire se il secondo MC cui fai riferimento è, per caso, un'altra istanza del primo e come sono fatti questi MC (cioè se inglobati a loro volta in un altro MC o posti direttamente sulla timeline principale)?

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    il MC è lo stesso.
    Sta però su un altro livello e si chiama con un nome di istanza differente...

    grazie per ora...

  4. #4
    Il problema potrebbe essere quello (cioè che sono due istanze dello stesso simbolo)...
    Come hai creato il secondo? con un copia & incolla?

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    l'ho preso dalla libreria...

    quello che non va è che la timeline principale non prende gli stop... che è una cosa che mi sconvolge.. fa cadere ogni certezza sul programma...
    ci deve essere qualcosa di storto... boh???

  6. #6
    Dove hai messo gli stop()?

    Inoltre sei tu che gli dici di proseguire, qui:
    codice:
    if(this._height <= altezza){
       this._height+=5;
    } else {
       _root.nextFrame();
    }
    Appena il Movie ha superato il valore di altezza, fa avanzare la timeline principale!

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    infatti è giusto...

    quando arriva al valore di altezza DEVE andare avanti...



    aspè, aspè, aspè... mi stai dicendo che lui quando è arrivato all'altezza giusta fa sempre _root.nextframe... ed è per questo che non prende gli stop???!!!


    ora ho provato così...
    codice:
    else{
    gotoAndStop("etichetta2");
    }
    dove etichetta2 sta un po' dopo... ma non ci va lo stesso...AUGH!!!
    comunque grazie per la pazienza...

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    non ho risolto ma ci ho capito qualcosa....
    in pratica il primo "on enter frame" mi permette di caricare il secondo. ma il secondo non mi permette di caricare il terzo.
    in soldoni: c'è modo di "annullare" un onenterframe?? cioè di dirgli: "adesso fermati e non rompere più?"

  9. #9
    Non avevo letto con la dovuta attenzione il tuo script:
    l'errore sta nella sua struttura.
    In pratica testi due eventi "separatamente" e solo al verificarsi di uno cancelli l'enterFrame.
    Questo quello che succede:
    1) quando l'altezza del movieclip supera il valore della variabile altezza fai partire la _root
    2) quando l'ingrandimento sull'asse Y supera il valore di 1000 cancelli l'evento enterFrame.

    Ma nell'intervallo di tempo che intercorre tra l'evento 1) e l'evento 2), ad ogni frame continui ad impartire il comando _root.nextFrame();!!!

    Capito dove sta l'inghippo?

    Una rettifica "al volo" potrebbe essere questa (ovviamente "da provare"):
    codice:
    if(this._height <= altezza) {
       this._height+=5;
    } else {
       if (!avviato) {
            avviato = true;
    	_root.nextFrame();
       }
    }
    In questo modo il comando nextframe verrà eseguito solo una volta.
    Fammi sapere...

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