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

    problemi con function e combo

    ciao a tutti...
    sto creando una mappa dove ci sono circa 300 località...
    queste vengono caricate da un file di testo e inserite in un combobox.
    Al combo ho associato una funzione che legge la localita scelta e sposta la mappa sul punto desiderato (che viene riconosciuto da un clip che ha lo stesso nome della localita).
    questa azione viene eseguita con una serie di IF ed else If (per le 300 localita)...

    Tutto andava bene finche non ho completato la serie di if e adesso succede che non mi riconosce alcune localita e dopo un po va in loop e punta sempre sulla stessa.

    Sarò che 300 if sono troppi? c'è qualche altro sistema che posso utilizzare?

    thanks

    swan

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    300 if? Strutturati come? (non scriverli tutti, metti una piccola porzione)

  3. #3
    for (i=1; i<=_root.myattesa.index; i++) {
    combo.addItem(_root.dati.nome[i]);
    //trace(_root.dati.nome[i]);
    }

    Combo.setSize(105);
    Combo.setRowCount(5);
    combo.sortItemsBy("Label", "ASC");
    combo.setChangeHandler("cambia");
    cambia = function () {
    scelta = combo.getSelectedItem().label;
    trace(scelta);
    _root.mappa._xscale = 200;
    _root.mappa._yscale = 200;
    _root.click = 2;
    if (scelta == "Alessandria") {
    mapx = _root.mapX-(_root.mappa.p_alessandria._x)*_root.click;
    mapy = _root.mapY-(_root.mappa.p_alessandria._y)*_root.click;
    _root.centra._visible = 1;
    _root.centra.in_centra.gotoAndPlay(2);
    } else if (scelta == "Airasca") {
    mapx = _root.mapX-(_root.mappa.p_airasca._x)*_root.click;
    mapy = _root.mapY-(_root.mappa.p_airasca._y)*_root.click;
    _root.centra._visible = 1;
    _root.centra.in_centra.gotoAndPlay(2);
    } else if (scelta == "Almese") {
    mapx = _root.mapX-(_root.mappa.p_almese._x)*_root.click;
    mapy = _root.mapY-(_root.mappa.p_almese._y)*_root.click;
    _root.centra._visible = 1;
    _root.centra.in_centra.gotoAndPlay(2);
    } else if ....per altri 285 circa


    che dici?

  4. #4
    ps: quando lancio il filmato mi dopo un po mi chiude flash segnalando un errore....

  5. #5
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Infatti, basta questo:

    codice:
    for (i=1; i<=_root.myattesa.index; i++) { 
    	combo.addItem(_root.dati.nome[i]); 
    	//trace(_root.dati.nome[i]); 
    } 
    
    Combo.setSize(105); 
    Combo.setRowCount(5); 
    combo.sortItemsBy("Label", "ASC"); 
    combo.setChangeHandler("cambia"); 
    
    cambia = function () { 
    	var scelta = combo.getSelectedItem().label.toLowerCase();
    	_root.mappa._xscale = 200; 
    	_root.mappa._yscale = 200; 
    	_root.click = 2; 
    	mapx = _root.mapX-(_root.mappa["p_" + scelta]._x)*_root.click; 
    	mapy = _root.mapY-(_root.mappa["p_" + scelta]._y)*_root.click; 
    	_root.centra._visible = 1; 
    	_root.centra.in_centra.gotoAndPlay(2);
    }

  6. #6
    si questo sarebbe bello se non fosse che esistono paesi che si chiamano "Val della Torre" piuttosto che "San Pietro Val Lemina"....

  7. #7
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    E che quindi hanno il movieclip rispettivo:

    san_pietro_val_lemina

    per cui tu:

    codice:
    for (i=1; i<=_root.myattesa.index; i++) { 
    	combo.addItem(_root.dati.nome[i]); 
    	//trace(_root.dati.nome[i]); 
    } 
    
    Combo.setSize(105); 
    Combo.setRowCount(5); 
    combo.sortItemsBy("Label", "ASC"); 
    combo.setChangeHandler("cambia"); 
    
    cambia = function () { 
    	var labe = combo.getSelectedItem().label.toLowerCase();
    	var scelta = label.split(" ").join("_");
    	_root.mappa._xscale = 200; 
    	_root.mappa._yscale = 200; 
    	_root.click = 2; 
    	mapx = _root.mapX-(_root.mappa["p_" + scelta]._x)*_root.click; 
    	mapy = _root.mapY-(_root.mappa["p_" + scelta]._y)*_root.click; 
    	_root.centra._visible = 1; 
    	_root.centra.in_centra.gotoAndPlay(2);
    }

  8. #8
    questo mi sembra un gran bel suggerimento...vado a modificare il tutto e ti faccio sapere. Devo modificare anche un il nome di alcune localita...

    intanto grazie
    swan

  9. #9
    adesso funziona perfettamente....
    anche se mi avevi messo un trabocchetto?
    cambia = function () {
    var labe = combo.getSelectedItem().label.toLowerCase();
    var scelta = label .split(" ").join("_");


    eh eh
    grazie ancora!
    swan

  10. #10
    ti chiedo ancora una cosa va...
    ho gia letto diverse discussioni sull'argomento ma non mi ha chiarito molto la situazione.
    Questa mappa e anche un altra che sto per consegnare, hanno un preload che ho fatto in una scena differente. Il problema e che la barra e le informazioni che ho messo si iniziano a vedere dal 60% in poi...

    ho guardato il solo preload e pesa 2 Kb quindi non puo essere un problema di peso. mi sai consigliare dove guardare?

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.