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

Discussione: [MX2004] Random

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    [MX2004] Random

    ciao a tutti,

    non capisco perchè non riesco a sostituire le lettere che compongono la mia scritta con delle lettere random

    codice:
    function textRamdom(flash) {
        lettere = "abcdefghilmnopqrstuvxyzABCDEFGHILMNOPQRSTUVXYZ";
        lett = new Array();
        for (i=0; i<lettere.length; i++) {
            lett[i] = lettere.substr(i, 1);
            trace(lett[i]);
        }
        numerolettere = lett.length;
        scrit = new Array();
        for (i=0; i<flash.length; i++) {
            scrit[i] = flash.substr(i, 1);
            trace(scrit[i]);
        }
        numeroscritta = scrit.length;
        trace(flash.replace(scrit[i], lett[random(numerolettere)]));
    }
    il trace in grassetto mi dà undefined :master:

  2. #2
    dopo il for
    scrit[i]
    non e' niente, la i sara' = a scrit.length

    magari

    scrit[i-1] potrebbe dare qualcosa

    sempre che i rimanga in scope anche fuori dal for
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ho provato come mi hai gentilmente consigliato ma niente allora stò cercando di modificare cosi in modo da evitare di uscire dal ciclo
    ma ricevo cmq undefined

    codice:
    function textRamdom(flash) {
        lettere = "abcdefghilmnopqrstuvxyzABCDEFGHILMNOPQRSTUVXYZ";
        lett = new Array();
        for (i=0; i<lettere.length; i++) {
            lett[i] = lettere.substr(i, 1);
            trace(lett[i]);
            numerolettere = lett.length;
            scrit = new Array();
            for (k=0; k<flash.length; k++) {
                scrit[k] = flash.substr(k, 1);
                trace(scrit[k]);
                flash.replace(scrit[k], lett[random(numerolettere)]);
                numeroscritta = scrit.length;
            }
        }
    }

  4. #4
    se mi spieghi meglio cosa vuoi fare ti aiuto ...

    quel flash.replace cosa dovrebbe fare ?

    flash e' una var di tipo stringa ???

    perche' in tal caso non esiste, se non definito a parte in una proto, il metodo replace
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    allora ho un testo dentro ad una variabile dinamica e vorrei che all'evento onRollOver il testo iniziasse a cambiare sostituendo i caratteri della scritta in maniera casuale (random) o provato cosi adesso e ci siamo quasi ma non riesco ad uscire dal ciclo
    codice:
    rmd.onRollOver = function() {
        textRamdom(_root.flash.text);
    };
    function textRamdom(flash) {
        this.onEnterFrame = function() {
            lettere = "abcdefghilmnopqrstuvxyzABCDEFGHILMNOPQRSTUVXYZ";
            lett = new Array();
            for (i=0; i<lettere.length; i++) {
                lett[i] = lettere.substr(i, 1);
                // trace(lett[i]);
                numerolettere = lett.length;
                scrit = new Array();
                for (k=0; k<flash.length; k++) {
                    scrit[k] = flash.substr(k, 1);
                    // trace(scrit[k]);
                    nuova = flash.split(scrit[k]).join(lett[random(numerolettere)]);
                    numeroscritta = scrit.length;
                    trace(nuova);
                    _root.flash.text = nuova;
                }
            }
        };
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    cosi ci siamo quasi solo che non capisco perchè cambia solo l'ultima lettera

    codice:
    function textRamdom(flash) {
        this.onEnterFrame = function() {
            lettere = "abcdefghilmnopqrstuvxyzABCDEFGHILMNOPQRSTUVXYZ";
            lett = new Array();
            for (i=0; i<lettere.length; i++) {
                lett[i] = lettere.substr(i, 1);
                numerolettere = lett.length;
                // trace(lett[i]);
                trace(nuova);
            }
            scrit = new Array();
            for (k=0; k<flash.length; k++) {
                scrit[k] = flash.substr(k, 1);
                numeroscritta = scrit.length;
                // trace(scrit[k]);
                nuova = flash.split(scrit[k]).join(lett[random(numerolettere)]);
    			_root.flash.text = nuova
            }
        };
    }

  7. #7
    una stringa e' una stringa, un array e' un array

    codice:
    function textRamdom(flash) {
    	var lettere = "abcdefghilmnopqrstuvxyzABCDEFGHILMNOPQRSTUVXYZ";
    	var letterear = lettere.split('');
    	var nuova = "";
    	for (k=0; k<flash.length; k++) {
    		var index = Math.floor( Math.random() * lettere.length );
    		nuova += letterear[index];
    	}
    	_root.flash.text = nuova;
    }
    rmd.onRollOver = function() {
    	this.onEnterFrame = function() {
    		textRamdom(_root.flash.text);
    	}
    };
    rmd.onRollOut = function() {
    	delete this.onEnterFrame;
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    mm.. grazie mille per la dritta ma non ci siamo

    cosi sostituisce la scritta con dei caratteri random solo che se la mia scritta aveva 10 caratteri lui ne mette una marea non 10 e poi onRollOut dovrebbe ricomporre la scritta originale

    mi daresti una manina....

    grazie mille sei gentilissimo

  9. #9
    Originariamente inviato da Rossella_75
    mm.. grazie mille per la dritta ma non ci siamo

    cosi sostituisce la scritta con dei caratteri random solo che se la mia scritta aveva 10 caratteri lui ne mette una marea non 10
    ne sei sicura ???

    se lo fa e' un bug del tuo flash, che versione hai ???

    comunque, stesso identico codice funzionante e testato su MX 2004 ... con ritorno a variabile originale ...

    codice:
    function textRamdom(flash) {
    	var lettere = "abcdefghilmnopqrstuvxyzABCDEFGHILMNOPQRSTUVXYZ";
    	var letterear = lettere.split('');
    	var nuova = "";
    	for (k=0; k<flash.length; k++) {
    		var index = Math.floor( Math.random() * lettere.length );
    		nuova += letterear[index];
    	}
    	_root.flash.text = nuova;
    }
    rmd.onRollOver = function() {
    	if( this.__remember == undefined ) {
    		this.__remember = _root.flash.text;
    	}
    	this.onEnterFrame = function() {
    		textRamdom(_root.flash.text);
    	}
    };
    rmd.onRollOut = function() {
    	delete this.onEnterFrame;
    	_root.flash.text = this.__remember;
    }
    se non va con copia e incolla scrivi a Macromedia

    [ ovvio che devi pero' prima sistemare la variabile con le lettere ]
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    hai ragione funziona

    posso farti un'altra piccola richiesta

    dove ci sono gli spazi posso evitare di far cambiare lettera ma lasciare gli spazi?

    PS: nel ritornare alla scritta originale è complicato avere un'effetto rallentato?


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.