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

    Chiarimento sulle funzioni

    Una cosa su cui non ho chiare le idee...
    spesso mi capita di incontrare questo problema e comincio a darmi da fare per aggirarlo. se mi aiutate mi risparmierete un bel po di tempo...

    di solito mi capita di impostare una variabile di controllo per verificare certi eventi, per evere un controllo su questa variabile inserisco una funzione IF ELSE dentro un gestore onClipEven (enterFrame)...

    e fin qui tutto ok: la funzione controlla costantemente.

    ma il problema e propio il controllo continuo, un volta verificatasi la condizione la funzione inizia a svolgere l'istruzione, ma questo avviene una volta per ogni frame perche inserito dentro al gestore (enterFrame).

    io vorrei che l'istruzione venisse eseguita una volta solamente ma che la funzione continui a loopare.

    magari e una cagata o magari no.
    voi che dite.
    come risolvete il problema?

  2. #2
    mmm :dot
    vediamo
    vi posto il codice...

    onClipEvent(enterFrame){
    moving();
    moving =function(){if((_root.getBytesLoaded() / _root.getBytesTotal()) * 100>95){
    this._xscaleN = 99;}
    else if((_root.getBytesLoaded() / _root.getBytesTotal()) * 100>90){
    this._xscaleN = 90;

    ///////////// io vorrei che l'istruzione che segue fosse eseguita una volta solamente e poi la funzione riprendesse normalmente//////////

    _parent.camminaClip.gotoAndPlay(81)}
    else {
    this._xscale = 0};


    }


    contate che io avro circa una decina di posibili ELSE IF

  3. #3
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    onClipEvent(load){
    	this.once = false;
    	function moving(){
    		if ((_root.getBytesLoaded() / _root.getBytesTotal()) * 100 > 95) {
    			this._xscaleN = 99;
    		} else if ((_root.getBytesLoaded() / _root.getBytesTotal()) * 100 > 90) {
    			this._xscaleN = 90;
    			if(!this.once){
    				_parent.camminaClip.gotoAndPlay(81);
    				this.once = true;
    			}
    		} else {
    			this._xscale = 0;
    		}
    	};
    }
    onClipEvent (enterFrame) {
    	moving();
    }

  4. #4
    evendo piu casi da verificare sullo stesso valore dovrei creare once1, once2, once3...?



    no ok ci provo


    infatti era come pensavo, funziona solo la prima volta e poi non piu, piu...

  5. #5
    con una variazione il tuo suggerimento mi ha risolto il problema..
    invece che un valore booleano gli assegno un valore numerico
    da 1 a 9 (siccome ho 10 possibilita), ogni skip la funzione assegna alla variabile il valore che sara necessario per lo skip successivo...

    se vi interessa vi posto il codice
    onClipEvent(load){




    //Metodo spostamovie
    spostamovie =function(){_parent.spostamovieN=(this._x+this._wi dth);
    //motore del movimento
    _parent.spostamovie._x-=(_parent.spostamovie._x-_parent.spostamovieN)/8}



    this.once = 5;
    function moving(){
    if ((_root.getBytesLoaded() / _root.getBytesTotal()) * 100 > 95) {
    this._xscaleN = 99;
    } else if ((_root.getBytesLoaded() / _root.getBytesTotal()) * 100 > 90) {
    this._xscaleN = 90;
    if(this.once==9){
    _parent.camminaClip.gotoAndPlay(91);
    this.once = true;
    }

    } else if ((_root.getBytesLoaded() / _root.getBytesTotal()) * 100 > 80) {
    this._xscaleN = 80;
    if(this.once==8){
    _parent.camminaClip.gotoAndPlay(81);
    this.once = 9;
    }

    } else if ((_root.getBytesLoaded() / _root.getBytesTotal()) * 100 > 70) {
    this._xscaleN = 70;
    if(this.once==7){
    _parent.camminaClip.gotoAndPlay(71);
    this.once = 8;
    }

    } else if ((_root.getBytesLoaded() / _root.getBytesTotal()) * 100 > 60) {
    this._xscaleN = 60;
    if(this.once==6){
    _parent.camminaClip.gotoAndPlay(61);
    this.once = 7;
    }

    } else if ((_root.getBytesLoaded() / _root.getBytesTotal()) * 100 > 50) {
    this._xscaleN = 50;
    if(this.once==5){
    _parent.camminaClip.gotoAndPlay(51);
    this.once = 6;
    }

    } else {
    this._xscale = 0;
    }
    };
    }
    onClipEvent (enterFrame) {
    moving();
    spostamovie();
    }


    qui ci sono solo 5 casi...

    grassie nega :metallica

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.