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

    Problema con array (da principiante)

    ciao a tutti, spinto dalla necessità ho iniziato ad interessarmi agli array.
    Dunque, volevo creare un filmato in cui ci sono una serie di pulsanti è un movieclip (con nome d'istanza "striscia). Cliccando su ogni pulsante viene fatta partire "striscia" e alla fine di striscia deve essere caricato ogni volta un clip esterno diverso.
    Quindi ho fatto così:
    ho messo nel primo fotogramma della timeline principale il seguente codice:

    codice:
    function vai(){
    	var esterni = new Array;
    	esterni[0] = "clip1.swf";
    	esterni[1] = "clip2.swf";
    	esterni[2] = "clip3.swf";
    	_root.striscia.gotoAndPlay(2);
    }
    Poi al primo pulsante ho associato questo (nei pulsanti successivi cambia il valore di "caricaquesto":
    codice:
    on (Release) {
    var caricaquesto = esterno[0];
    vai();
    E infine nell'ultimo fotogramma del movieclip "striscia":
    codice:
    loadMovieNum(valore,1);
    L'animazione parte, ma i clip esterni non vengono caricati, dove sbaglio?
    Grazie mille a tutti.
    Marcello: "Non ti preoccupare, è tutto CSS, senò è finita che separiamo la grafica dai contenuti. E allora 'o W3C parla a vacant?"
    Vincenzo: "Spesso sì."

    Utonter . Puliti dentro e belli fuori.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    valore immagino sia caricaquesto, giusto?

    Codice PHP:
    on (Release) {
    var 
    caricaquesto esterno[0];
    vai(); 
    tu inizializzi l'array nella funzione vai, ed essendo un'array (quindi un tipo di variabile) dichiarato in una funzione, esso viene creato al momento della chiamata della funzione, e distrutto al termine dell'esecuzione della stessa
    in questo caso, tu cerchi di leggere l'array ancora prima che esso sia stato creato, e anche se in quel momento esistesse, non lo leggeresti perché è interno alla funzione
    devi dichiarare l'array al di fuori del corpo della funzione
    Codice PHP:
    var esterni = new Array;
    esterni[0] = "clip1.swf";
    esterni[1] = "clip2.swf";
    esterni[2] = "clip3.swf";
    function 
    vai(){
        
    _root.striscia.gotoAndPlay(2);

    a questo punto si rende anche superflua l'esistenza della funzione però...
    buonuomo.tomma@tiscali.it

  3. #3
    sì certo, pensavo una cosa e ne ho scritta un'altra.
    Invece nell'ultimo fotogramma del movieclip non devo cambiare niente?
    Marcello: "Non ti preoccupare, è tutto CSS, senò è finita che separiamo la grafica dai contenuti. E allora 'o W3C parla a vacant?"
    Vincenzo: "Spesso sì."

    Utonter . Puliti dentro e belli fuori.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    a parte mettere caricaquesto invece di valore, direi di no, ma per essere sicuro fai una prova e vedi se funziona
    'notte
    buonuomo.tomma@tiscali.it

  5. #5
    ... non so, continua a non funzionare.

    Ricapitolo le modifiche che ho fatto:

    Nel primo frame della timeline principale:
    codice:
    var esterni = new Array;
    esterni[0] = "clip1.swf";
    esterni[1] = "clip2.swf";
    esterni[2] = "clip3.swf";
    Ai pulsanti (di pulsante in pulsante cambia solo il numero indice dell'array):
    codice:
    on (release) {
    	caricaquesto = esterni[0]
    	_root.striscia.gotoAndPlay(2)
    }
    Nell'ultimo frame del movieclip con nome istanza "striscia":
    codice:
    loadMovieNum(caricaquesto,1);
    stop();
    Dove sbaglio? Ma un movieclip può richiamare delle variabili scritte nella timeline principale? Cioè, col fatto che sono a livelli diversi, non può essere che non le possa leggere? Non so che fare, ma vorrei imparare...
    Marcello: "Non ti preoccupare, è tutto CSS, senò è finita che separiamo la grafica dai contenuti. E allora 'o W3C parla a vacant?"
    Vincenzo: "Spesso sì."

    Utonter . Puliti dentro e belli fuori.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    i pulsanti sono nella root o in un clip? comunque per richiamare qualcosa che stia nella root, basta fare _root.variabile
    i pulsanti hanno impostato come livello quello del contenitore, quindi leggendo le variabili della root da un pulsante che ci sta dentro, no problema, per leggerle da un movieClip devi scrivere _root.nomevariabile, o _level0.nomevariabile
    ah,ho notato ora, un array si inizializza con le parentesine, perché chiami la funzione di costruzione, quindi
    var esterni = new Array()
    prova con queste modifiche
    ciao
    buonuomo.tomma@tiscali.it

  7. #7
    grazie mille, ora funge perfettamente. In effetti potevo anche arrivarci da solo... sono proprio negato per la programmazione.
    Marcello: "Non ti preoccupare, è tutto CSS, senò è finita che separiamo la grafica dai contenuti. E allora 'o W3C parla a vacant?"
    Vincenzo: "Spesso sì."

    Utonter . Puliti dentro e belli fuori.

  8. #8
    Ciao, sto provando ad andare avanti, e ora ho un nuovo problema:
    ho i soliti 3 clip esterni (clip1.swf, clip2.swf e clip3.swf, ognuno di 15 fotogrammi) e i soliti 3 pulsanti nel filmato principale.
    All'avvio del filmato principale viene caricato clip1.swf.
    Vorrei che cliccando sui 3 pulsanti il filmato attualmente caricato andasse all'indietro, e raggiunto il primo frame venisse caricato l'altro. Quindi ho fatto questo.
    Filmato principale:
    Nel primo frame ho messo:
    codice:
    var esterni = new Array();
    esterni[0] = "clip1.swf";
    esterni[1] = "clip2.swf";
    esterni[2] = "clip3.swf";
    var caricaquesto = esterni[0];
    loadMovie (caricaquesto,cips);
    Poi ci sono un movieclip vuoto sullo stage con nome di istanza "cips" (non mi veniva niente di meglio) e un altro movieclip a cui ho assegnato questo:
    codice:
    onClipEvent(load){
    	_root.cips.avanti = true;
    	_root.cips.indietro = false;
    }
    onClipEvent(enterFrame){
    	if(_root.cips.avanti){
    		_root.cips.nextFrame();
    	}
    	if (_root.cips.indietro){
    		_root.cips.prevFrame();
    		if (_root.cips._currentframe == 1) {
    			loadMovie(_root.caricaquesto,cips);
    		}
    	}
    }
    E infine ai vari pulsanti:
    codice:
    on (release) {
    _root.cips.avanti = false;
    _root.cips.indietro = true;
    var caricaquesto = esterni[0];
    }
    Il problema è che il filmato esterno effettivamente torna indietro, ma arrivato al primo frame non viene caricato quello nuovo... Dove sbaglio?
    Marcello: "Non ti preoccupare, è tutto CSS, senò è finita che separiamo la grafica dai contenuti. E allora 'o W3C parla a vacant?"
    Vincenzo: "Spesso sì."

    Utonter . Puliti dentro e belli fuori.

  9. #9
    up...
    Marcello: "Non ti preoccupare, è tutto CSS, senò è finita che separiamo la grafica dai contenuti. E allora 'o W3C parla a vacant?"
    Vincenzo: "Spesso sì."

    Utonter . Puliti dentro e belli fuori.

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.