• User Attivo

    combinando un po il codice cercando di ottimizzare l' esigenza. certo, una tiratina d'orecchie dal buon coder flepperrr... non me la risparmio st'avolta.

    🙂

    to'..

    a = 250;
    b = 200;
    c = 120;
    d = 130;
    e = 190;
    f = 160;
    //loadVariables("file2.txt", this);
    **var traguardo:Number = (882);
    var arrivo:Number = traguardo+150
    var counter:Number = 0;**
    var variabili_array:Array = new Array(this.a, this.b, this.c, this.d, this.e, this.f);
    var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio);
    for (var i:Number = -1; i<cavalli_array.length; i++) {
    **    cavalli_array*._x = -250;**
       ** cavalli_array*.onEnterFrame = muovi;**
    *    cavalli_array*.i = i;*
        muovi = function () {
            with (this) {
              **  _x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12;**
                if (Math.ceil(_x)>=traguardo && this.arrivo_ok == undefined) {
    **                this.arrivo_ok = true;
                    _root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y});
                    classifica(i);**
                }
                if (Math.ceil(_x)>=arrivo) {
                    gotoAndStop(1);
    **                delete onEnterFrame;**
                    if (_root.counter>=num_cavalli) {
                     **   frame2();**
                    }
                }
            }
        };
    }
    classifica = function (i) {
    **    _root.counter++;
        _root["c0"+(i+1)].txt.text = ".0"+counter;**
    };
    frame2 = function () {
        var secondi_left = setInterval(function () {
    **        clearInterval(secondi_left);**
            _root.gotoAndStop("qualificati");
        }, 3000);
    };
    
    

  • User

    Accidenti! Si stravolge tutto quello che avevo fatto prima.
    Ora ci provo.
    Grazie


  • User

    Lo applico al mio filmato ma i cavalli non si muovo proprio! 😞


  • User Attivo

    ciao priscilla.. molto probabilmente loadvariables crea qualche conflitto, è poco affidabile in flash8. ecco xchè flep ti proponeva l'integrazione xml.

    In alternativa potresti sempre integrare la classe loadVars e ottimizzare ancor + il codice.

    se noti io x ovviare al problema e cmq proporti l'animazione e verifica della posizione, ho associato delle variabili interne a,b,c per definire gli spostamenti.

    Puoi trovare l'esempio qui
    http://img159.imageshack.us/my.php?image=corsaprova02mq2.swf

    X realizzare cosi la simulazione sulla tua base.
    rimpiazza l'istruzione del fotogramma con questa

    stop();
    a = 250;
    b = 200;
    c = 1200;
    d = 130;
    e = 190;
    f = 160;
    loadVariables("file.txt", this);
    var traguardo:Number = (700);
    var arrivo:Number = traguardo+150
    var counter:Number = 0;
    var variabili_array:Array = new Array(a, this.b, this.c, this.d, this.e, this.f);
    var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio);
    for (var i:Number = -1; i<cavalli_array.length; i++) {
        cavalli_array*._x = -25
        cavalli_array*.onEnterFrame = muovi;
        cavalli_array*.i = i;
        muovi = function () {
            with (this) {
                _x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12;
                if (Math.ceil(_x)>=traguardo && this.arrivo_ok == undefined) {
                    this.arrivo_ok = true;
                    _root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y});
                    classifica(i);
                }
                if (Math.ceil(_x)>=arrivo) {
                    delete onEnterFrame;
                    if (_root.counter>=num_cavalli) {
                        frame2();
                    }
                }
            }
        };
    }
    classifica = function (i) {
        _root.counter++;
        trace(i+":"+counter)
        _root["c0"+(i+1)].text = ".0"+counter;
    };
    frame2 = function () {
        var secondi_left = setInterval(function () {
            clearInterval(secondi_left);
            _root.gotoAndStop("qualificati");
        }, 3000);
    };
    
    

    un saluto

    :ciauz:


  • User

    Innanzi tutto, grazie moltissime Edo. Ho applicato il tuo script. I cavalli arrivano e lasciano la loro posizione nei punti desiderati ma...
    I cavalli nel precedente script (quello di Flep) partivano, correvano piu' veloci o piu' lenti in base al loro punteggio e, se il loro punteggio non superva il valore del traguardo, si fermavano.
    Inoltre nel tuo filmato i cavalli partono veloci a man mano che arrivano al traguardo, rallentano...si puo' evitare?

    Scusami
    Grazie per la pazienza

    Pri


  • Super User

    Sto facendo con XML 🙂


  • User Attivo

    ci sono delle variabili x controllare la velocità e la lunghezza dello spostamento. a. b c.... che ora ho definito sul fotogramma.

    se vuoi impostare come era prima... bisogna ripristinare in parte lo script che simula il movimento..

    provo a ripristinarlo..

    stop();
    a = 250;
    b = 200;
    c = 1200;
    d = 130;
    e = 190;
    f = 160;
    loadVariables("file.txt", this);
    var traguardo:Number = (700);
    var arrivo:Number = traguardo+150
    var counter:Number = 0;
    var variabili_array:Array = new Array(this.a, this.b, this.c, this.d, this.e, this.f);
    var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio);
    for (var i:Number = -1; i<cavalli_array.length; i++) {
    cavalli_array*._x = -25
    cavalli_array*.onEnterFrame = muovi;
    cavalli_array*.i = i;
    muovi = function () {
    with (this) {
    ** _x = _x+(variabili_array*/200);**
    // _x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12;

            if (Math.ceil(_x)>=traguardo && this.arrivo_ok == undefined) {
                this.arrivo_ok = true;
                _root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y});
                classifica(i);
            }
            if (Math.ceil(_x)>=arrivo) {
                delete onEnterFrame;
                if (_root.counter>=num_cavalli) {
                    frame2();
                }
            }
        }
    };
    

    }
    classifica = function (i) {
    _root.counter++;
    trace(i+":"+counter)
    _root["c0"+(i+1)].text = ".0"+counter;
    };
    frame2 = function () {
    var secondi_left = setInterval(function () {
    clearInterval(secondi_left);
    _root.gotoAndStop("qualificati");
    }, 3000);
    };


  • User

    Ora l'andamento dei cavalli e' ok ma arriva il primo, si ferma, gli altri no e dopo 3 secondi si va al secondo frame....


  • User Attivo

    try now. Vedi parti in grassetto.

    stop();
    a = 250;
    b = 200;
    c = 120;
    d = 130;
    e = 190;
    f = 160;
    //loadVariables("file2.txt", this);
    var traguardo:Number = (700);
    var arrivo:Number = traguardo+150;
    var counter:Number = 0;
    var variabili_array:Array = new Array(this.a, this.b, this.c, this.d, this.e, this.f);
    var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio);
    for (var i:Number = -1; i<cavalli_array.length; i++) {
    cavalli_array*._x = -250;
    cavalli_array*.onEnterFrame = muovi;
    cavalli_array*.i = i;
    muovi = function () {
    with (this) {
    _x = Math.min(arrivo, _x+(variabili_array*/20));
    //_x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12;
    if (Math.ceil(_x)>=traguardo && this.arrivo_ok == undefined) {
    this.arrivo_ok = true;
    _root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y});
    classifica(i);
    }
    if (Math.ceil(_x)>=arrivo) {
    delete onEnterFrame;
    if (_root.counter>=cavalli_array.length-1) {
    frame2();
    }
    }
    }
    };
    }
    classifica = function (i) {
    _root.counter++;
    _root["c0"+(i+1)].text = ".0"+counter;
    };
    frame2 = function () {
    var secondi_left = setInterval(function () {
    clearInterval(secondi_left);
    _root.gotoAndStop("qualificati");
    }, 3000);
    };


  • User

    Mi spiego meglio. Se il traguardo e' a 750 (dove finisce lo schermo) e un cavallo ha 200 di punteggio, ad un certo punto (diciamo a un po' meno della meta' dello stage) si dovrebbe fermare.


  • User Attivo

    scusami non credevo fosse questo l'obiettivo anche xxchè non avevo seguito il tuo primo post di riferimento

    prova cosi allora

    stop();
    a = 250;
    b = 200;
    c = 120;
    d = 130;
    e = 190;
    f = 160;
    //loadVariables("file2.txt", this);
    var traguardo:Number = (750);
    var arrivo:Number = traguardo+150;
    var counter:Number = 0;
    var variabili_array:Array = new Array(this.a, this.b, this.c, this.d, this.e, this.f);
    var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio);
    for (var i:Number = -1; i<cavalli_array.length; i++) {
    ** cavalli_array*._x = -250;**
    cavalli_array*.onEnterFrame = muovi;
    cavalli_array*.i = i;
    muovi = function () {
    with (this) {
    _x = Math.min(variabili_array*, _x+(variabili_array*/20));
    //_x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12;
    if (Math.ceil(_x)>=variabili_array* && this.arrivo_ok == undefined) {
    this.arrivo_ok = true;
    _root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y});
    classifica(i);
    }
    if (Math.ceil(_x)>=variabili_array*) {
    delete onEnterFrame;
    if (_root.counter>=cavalli_array.length-1) {
    frame2();
    }
    }
    }
    };
    }
    classifica = function (i) {
    _root.counter++;
    _root["c0"+(i+1)].text = ".0"+counter;
    };
    frame2 = function () {
    var secondi_left = setInterval(function () {
    clearInterval(secondi_left);
    _root.gotoAndStop("qualificati");
    }, 3000);
    };


  • Super User

    Eccolo:


  • User Attivo

    @Flep said:

    Eccolo:

    mitico flep.. 🙂 bellissima istruzione chiara e intuitiva.


  • User

    Ahahah! Grande! Pero'.....ancora non ci siamo! Dove sono i punteggi dei cavalli? Ho un gran bisogno di contrallare il punto esatto in cui si fermeranno.
    Immaginate questa gara come una lotta fra agenzie immobiliari. Chi fa piu' punti nel mese va avanti fino a raggiungere il traguardo e guadagnarsi il passaggio alla fase successiva. I punteggi arrivano giornalmente e le agenzie potranno vedere la loro posizione semplicemente vedendo l'animazione in qualsiasi momento...
    Solo alla fine del mese poi arriveranno al traguardo, e vinceranno i primi 3..


  • User Attivo

    i punteggi?? Flep ha integrato un blocco Xml per gestirli dall'esterno. immagini tu ti riferisca a quelli?


  • Super User

    @priscilla73 said:

    Ahahah! Grande! Pero'.....ancora non ci siamo! Dove sono i punteggi dei cavalli? Ho un gran bisogno di contrallare il punto esatto in cui si fermeranno.
    Immaginate questa gara come una lotta fra agenzie immobiliari. Chi fa piu' punti nel mese va avanti fino a raggiungere il traguardo e guadagnarsi il passaggio alla fase successiva. I punteggi arrivano giornalmente e le agenzie potranno vedere la loro posizione semplicemente vedendo l'animazione in qualsiasi momento...
    Solo alla fine del mese poi arriveranno al traguardo, e vinceranno i primi 3..

    Quello che dici è quasi totalmente diverso dai discorsi fatti fino ad ora. Bisogna tornare sullo script e aggiustare certe cose, del tipo i cavalli non devono stare sotto onEnterFrame, devono avanzare solo del valore di ognuno dall' xml.

    Di inputs te ne abbiamo dati tanti ed ora, a meno che tu voglia pagare le prestazioni per farti un' applicazione professionale, potresti riuscire benissimo ad andare avanti.

    🙂


  • User

    🙂 Beh che dire.... Hai ragione Flep!
    Come idea per non è male no? Secondo voi la posso proporre in giro?

    Cmq, ho deciso che risolvo lasciando al posto delle posizioni dei cavalli una bella scritta "qualificato" :D.
    In questo modo non mi devo più preoccupare di variabili e cavoletti vari...

    Grazie Flep e grazie molto Edo

    Baci
    Pri


  • User Attivo

    @priscilla73 said:

    🙂 Beh che dire.... Hai ragione Flep!
    Come idea per non è male no? Secondo voi la posso proporre in giro?

    Cmq, ho deciso che risolvo lasciando al posto delle posizioni dei cavalli una bella scritta "qualificato" :D.
    In questo modo non mi devo più preoccupare di variabili e cavoletti vari...

    Grazie Flep e grazie molto Edo

    Baci
    Pri

    prego. Alla fine è stato ottenuto un po quello che la tua esigenza iniziale voleva.

    😉


  • User

    Dalla nostra discussione ho appreso come inserire un setInterval e come rendere invisibile un movie nello stage in base ad una variabile.

    Per il resto mi sono ingegnata un po' con quello che sapevo degli If e gli else. 🙂

    Però il codice che mi avete dato me lo studierò e magari un giorno riuscirò anche a capirci qualcosa! 😄

    Baci
    Pri