Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    MI rivolgo solo ai guru di action script (solo senior)

    Non riesco a dare un range di 2 valori al comando.. while...


    var minimo = min; //valore minimo dell'array TUTTI
    var a_length = range; //valore massimo dell'array TUTTI
    var n_length = quanti; // lunghezza dell'array COMPONENTI
    var n_array = quante; // lunghezza dell'array COMBINAZIONI GENERATE

    rangedesiderato deve essere un valore tra min e range...
    come posso dirglielo all'action script???


    while (rangedesiderato) {

    tutti.unshift(rangedesiderato--);


    }

    ho provato a dirgli...

    while (rangedesiderato>minimo AND rangedesiderato<=a_length) {

    tutti.unshift(rangedesiderato--);


    }

    ma mi va nei pazzi! mi si blocca dicendomi che uno script sta mettendoci troppo tempo per eseguire l'operazione e mi chiede se volgio interrompere lo script (cosa che mi tocca fare sempre..)

    Grazie a chi sa salvarmi da sto bicchier d'acqua..

    Solo senior grazie!


  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Scusa freetom.. :master: anche se ti rivolgessi al capocreatore di flash in persona, il problema è che dalla tua richiesta non si capisce quello che vorresti fare

    Cosa vuol dire che "rangedesiderato" deve essere un valore tra min e range??

    Vuoi che "rangedesiderato" debba essere valutato da una condizione (sia essa in un ciclo while)?
    In tal caso "rangedesiderato" dovrà essere valorizzato prima di passarlo al ciclo while.. non ti sembra?

    Oppure vuoi che tramite un cliclo vengano assegnati a "rangedesiderato", di volta in volta, tutti i valori tra min e range?

    Probabilmente è quest'ultimo caso, anche se non collima tanto con i termini della tua richiesta...

    In tal caso potresti usare piu specificatamente un ciclo for in questo modo:

    codice:
    for (rangedesiderato=minimo; rangedesiderato<=a_length; rangedesiderato++) {
    	tutti.unshift(rangedesiderato);
    }
    Era questo che volevi ottenere??
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    no...

    Te l'ho scritto nell'altro post cosa vorrei ottenere...




    Ciao e grazie comque!


  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    io ho questo codice:

    while (range) [

    tutti.unshift(range--)


    ]

    che funziona egregiamente solo se range è un valore massimo (es. 45) del range voluto appunto ma se volessi mettere anche un valore minimo... (es. 10) come posso modificare l'action script di cui sopra?

    Io ho provato con

    while (range>10 AND range<45) [

    tutti.unshift(range--)

    ]

    ma non me lo comprende.. e mi si impalla il programma...
    :master: io ancora non capisco

    La condizione (range>10 AND range<45), o più correttamente (range>10 && range<45)
    funziona correttamente.

    Se range ha un valore compreso tra 11 e 44 verrà vista la condizione ed eseguito il ciclo while.

    Ovviamente range dovrà, ad un certo punto, rendere falsa la condizione altrimenti il ciclo sarà infinito e verrà interrotta l'esecuzione.
    Ma questo lo fa con l'azione che hai scritto range--

    Ovviamente la variabile tutti deve essere un Array altrimenti il metodo unshift non avrà luogo.
    Per cui precedentemente ci dovrà essere uno script del genere:
    tutti = new Array()

    Se la variabile range non è compresa tra 11 e 44, la condizione sarà falsa e verrà saltato l'intero ciclo while.

    Il tuo script dovrebbe funzionare correttamente.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Purtroppo a me nn funge.. :(




    while (rangedes>10 && rangedes<45) {

    tutti.unshift(rangedes--);


    }

    ti posto tutto il codice che si attiva cliccando sul bottone relativo:



    stop();
    var tutti = new Array();
    var sublist = new Array();



    function genera_sistema() {

    var n_length = quanti; // lunghezza dell'array COMPONENTI
    var n_array = quante; // lunghezza dell'array COMBINAZIONI GENERATE

    while (rangedes>10 && rangedes<45) {

    tutti.unshift(rangedes--);


    }



    NOTE:


    se metto:

    while (rangedes) {

    tutti.unshift(rangedes--);


    }

    funge!





    function generateNew(origin, len) {

    var gen = new Array();

    for (var i = 0; i<len; i++) {


    var pos = Math.round(Math.random()*origin.length)-1;

    valoreda_aggiungere=origin.splice(pos,1);

    gen.push (String(valoreda_aggiungere));



    }



    return gen;

    }

    while (n_array) {

    var temp = generateNew(tutti.slice(), n_length);

    temp.sort(function(a,b){return Number(a) > Number(b);});
    trace(temp);


    //_root.testo2.text =temp;

    sublist.push(temp); //insieme di combinazioni


    n_array--

    array_disordinato= _root.sublist.slice().join(";")


    _root.testo4.text =array_disordinato;

    }

    }

  6. #6
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    risolto!

    così:

    while (range && range>minimo) {

    tutti.unshift(range--);

    }



  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    bhe mi fa piacere che hai risolto... anche se non ancora non capisco qual'è lo scopo dello script...

    In particolare:

    while (range && range>minimo) {
    tutti.unshift(range--);
    }

    ..questo ciclo viene eseguito fintanto che range è diverso da 0 ed è maggiore di minimo

    Ma supponendo che minimo sia un valore maggiore di 0, la condizione risulta un po' insolita.
    Sarebbe come scrivere

    while (range>minimo) {
    tutti.unshift(range--);
    }

    A meno che minimo possa essere un valore negativo. In tal caso range sarà decrementata fino al valore 0 che renderàa falsa la condizione:
    range && range>minimo

    E poi non avevi stabilito anche un valore massimo?

    ... :master: i dont understand

    ...la tua richiesta, a mio parere (e non me ne volere), non era chiara fin dall'inizio...

    ...Comunque sia, se hai risolto, va bene così
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    ti spiego...

    E nn te ne voglio..

    while (range && range>minimo) {
    tutti.unshift(range--);
    }

    Mi valuta il range desiderato minimo<x<massimo

    perchè range è appunto il massimo

    Se non sono stato ancora chiaro...
    nn me ne volere


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.