Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    33

    Assegnazione dinamica del codice

    All’inizio avevo il problema di assegnare runtime il codice a 16 istanze pulsante facendo in modo che ognuna abbia lo stesso codice ma richiami un’immagine diversa:

    Scrivendo in questo modo non funzionava (in pratica tutte le istanze ricevevano lo stesso codice che richiamava l’immagine con l’ultimo valore assunto da index cioè 17)


    for (index=1; index<=16; index++) {
    var prevn = "prev"+index;
    _root[prevn].onPress = function() {
    _root.showPic(index);
    };
    }


    Dopo alcune prove scrivendo in questo modo la cosa ha funzionato:


    DefPic = function (numPic, ClipName) {
    // funzione di assegnazione del codice delle singole istanze
    ClipName.onPress = function() {
    // richiama la funzione di visualizzazione passando l'indice dell'immagine
    _root.showPic(numPic);
    };
    };
    for (index=1; index<=16; index++) {
    //Assegna il codice alle istanze dei pulsanti
    var prevn = "prev"+index;
    DefPic(index, this[prevn]);
    }


    Ora, siccome le istanze dei pulsanti sono dei semplici quadrati mi sono detto, perché non provare a disegnare direttamente anche i pulsanti. E così ho fatto questo(il ciclo for è momentaneamente a 1 perché altrimenti avrei 16 istanze una sopra l’altra).

    DefPic = function (numPic, ClipName) {
    // funzione di assegnazione del codice delle singole istanze
    ClipName.onPress = function() {
    // richiama la funzione di visualizzazione passando l'indice dell'immagine
    _root.showPic(numPic);
    };
    };
    for (index=1; index<=1; index++) {
    //Assegna il codice alle istanze dei pulsanti
    var prevn = "prev"+index;
    createEmptyMovieClip(prevn, index);

    with (prevn) {
    lineStyle(1, 0x666666, 100);
    beginFill(0x888888, 50);
    moveTo(0, 0);
    lineTo(100, 0);
    lineTo(100, 30);
    lineTo(0, 30);
    lineTo(0, 0);
    }
    DefPic(index, this[prevn]);
    }

    L’assegnazione del codice in questo caso non avviene perché? Per caso anche in questo caso è sufficiente fare una funzione esterna richiamata dal cliclo for? Il codice è scritto correttamente ho tutto funziona per pura fortuna? Ogni suggerimento è bene accetto ma siate chiari perché non sono un programmatore puro’

    Grazie
    Aleoli

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    DefPic = function (numPic, ClipName)
    {
    	// funzione di assegnazione del codice delle singole istanze
    	ClipName.onPress = function()
    	{
    		// richiama la funzione di visualizzazione passando l'indice dell'immagine
    		_root.showPic(numPic);
    	};
    };
    for (index = 1; index <= 1; index++) {
    	//Assegna il codice alle istanze dei pulsanti
    	var mc = this.createEmptyMovieClip("prev" + index, index);
    	with (mc) {
    		lineStyle(1, 0x666666, 100);
    		beginFill(0x888888, 50);
    		moveTo(0, 0);
    		lineTo(100, 0);
    		lineTo(100, 30);
    		lineTo(0, 30);
    		lineTo(0, 0);
    	}
    	DefPic(index, mc);
    }

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.