Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Problema con Listener

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    76

    Problema con Listener

    Salve,

    sto in questa situazione:

    listener1 {
    listener2 {
    ....
    }
    ogg2.addEventListener("evento",listener2)
    }
    ogg1.addEventListener("evento", listener1)

    Il problema è che il primo listener cattura l'evento (uguale per entrambi) correttamente mentre il secondo genera un loop infinito

    Perchè?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Se uno è annidato dentro l'altro, richiamare il primo chiama anche il secondo. Cosa hai scritto, esattamente?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    76
    Ecco il codice per intero:

    codice:
    function tracciato() {
    	//Visualisazione TRACCIATO
    	var myListener4:Object = new Object();
    	myListener4.getRows = function(evtObj) {
    		//fscommand("Debug", evtObj.data.message);
    		file_xml = _level100.filexml;
    		var record_xml = new XML(evtObj.data.message);
    		var column;
    		for (var k = 0; k<record_xml.childNodes[0].childNodes.length; k++){
    			column = record_xml.childNodes[0].childNodes[k].childNodes[0];
    			IdLez = column.attributes['value'];
    			column = record_xml.childNodes[0].childNodes[k].childNodes[1];
    			TitLez = column.attributes['value'];
    			var query:Object = new Object();
    			query.getRows = function(evtObj) {
    				fscommand("Debug", evtObj.data.message);
    			}
    			_level100.myF_ADO2.addEventListener("getRows", query);
    			_level100.myF_ADO2.setSQL("SELECT DataInizio, ...Session2");
    			_level100.myF_ADO2.open("Session2");
    			_level100.myF_ADO2.getRows("-1");
    		}
    	};
    	_level100.myF_ADO.addEventListener("getRows", myListener4);
    	_level100.myF_ADO.setSQL("SELECT * FROM TBL_Lezioni", "Session1")
    	//_level100.myF_ADO.setSQL("SELECT TBL_Lezioni.Titolo...ull))", "Session1");
    	_level100.myF_ADO.open("Session1");
    	_level100.myF_ADO.getRows("-1");
    	}
    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    76
    up! up!

  5. #5
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Con quel ciclo for, richiami sempre lo stesso oggetto query e lo aggiungi come listener allo stesso oggetto. Dovresti distinguere le chiamate..

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    76
    Ciao,

    ce ne siamo accorti e lo abbiamo spostato, però accade questo:

    se faccio un solo ciclo di for funziona correttamente;
    se il ciclo for contiene più di un elemento query va in loop


  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    76
    Help please!

  8. #8
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Che script usi adesso, allora?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    76
    codice:
    function tracciato() {
    	//Visualisazione TRACCIATO
    	var myListener4:Object = new Object();
    	myListener4.getRows = function(evtObj) {
    		fscommand("Debug", evtObj.data.message);
    		file_xml = _level100.filexml;
    		var record_xml = new XML(evtObj.data.message);
    		var column;
    		var query:Object = new Object();
    		query.getRows = function(evtObj1) {
    			fscommand("Debug", evtObj1.data.message);
    		};
    		_level100.myF_ADO2.addEventListener("getRows", query);
    		for (var k = 0; k<record_xml.childNodes[0].childNodes.length; k++) {
    			column = record_xml.childNodes[0].childNodes[k].childNodes[0];
    			IdLez = column.attributes['value'];
    			column = record_xml.childNodes[0].childNodes[k].childNodes[1];
    			TitLez = column.attributes['value'];
    			if (IdLez != null) {
    				fscommand("Debug", IdLez);
    				_level100.myF_ADO2.setSQL("SELECT DataInizio, DataFine, Stato, Durata FROM TBZ_Utenti_Lezioni WHERE matricola='" add _level0.matr add "' and IdLezione='" add IdLez add "'", "Session2");
    				_level100.myF_ADO2.open("Session2");
    				_level100.myF_ADO2.getRows("-1", "Session2");
    			}
    		}
    	};
    	_level100.myF_ADO.addEventListener("getRows", myListener4);
    	_level100.myF_ADO.setSQL("SELECT * FROM TBL_Lezioni", "Session1");
    	//_level100.myF_ADO.setSQL("SELECT TBL_Lezioni.Titolo, TBZ_Utenti_Lezioni.DataInizio, TBZ_Utenti_Lezioni.DataFine, TBZ_Utenti_Lezioni.Stato, TBZ_Utenti_Lezioni.Durata FROM TBL_Lezioni LEFT JOIN TBZ_Utenti_Lezioni ON TBL_Lezioni.IdLezione = TBZ_Utenti_Lezioni.IdLezione WHERE (((TBZ_Utenti_Lezioni.matricola)='" add _level0.matr add "')) OR (((TBZ_Utenti_Lezioni.matricola) Is Null))", "Session1");
    	_level100.myF_ADO.open("Session1");
    	_level100.myF_ADO.getRows("-1");
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    76
    Sto impazzendo!!!

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.