Visualizzazione dei risultati da 1 a 7 su 7

Discussione: XLM aggiornamento dati

  1. #1

    XLM aggiornamento dati

    Salve

    Da poco ho iniziato a smanettare su flash cs3 .

    Usando Actionscript3 ho già capito come legarsi ad un file XML per leggere i dati.

    Io avrei invece il bisogno di aggiornare i dati di un file XML da una pagina flash è una cosa
    fattibile ? se si come fare ?

    Il client deve poter lanciare un file SWF che si trova u un server e tramite la pagina flash
    modificare i dati di un file XML che risiede sempre sullo stesso server .

    Grazie per gli eventuali consigli

    PS. vorrei evitare di usare PHP o altri linguaggi estranei a flash.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Con il solo Actionscript non è possibile interagire con il filesystem in un server (neanche in un client) salvo per l'uso degli shared object che in remoto prevedono comunque che nel server sia installato il Flash Media Server (bassa diffusione e costi alti).
    Per creare o modificare un file di testo o un xml devi necessariamente utilizzare un linguaggio lato server (php, asp, cfm, jsp ecc...) comandabile facilmente da flash tramite la classe URLLoader che comunica con lo script inviando e ricevendo delle variabili che, a seconda del proprio contenuto, faranno agire in maniera conseguente lo script

  3. #3
    Ti ringrazio per la tua celere risposta .

    Ho capito il concetto , potresti indicare un esempio sull'uso di URLOADER

    In pratica dovrebbe funzionare in modo da inviare al server delle variabili ed il programma sul server dovrebbe leggere e di conseguenza interpretare , anche effettuanto la registrazione su un XML .

    Ti chiedo solo dove potre reperire anche un semplice esempio.

    Grazie Manuel.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ho scritto un articolo riguardo all'urlloader, ma è realizzato seguendo le linee guida della vecchia classe LoadVars, presente nella versione precedente del linguaggio.
    Nel caso possa interessarti la trovi tra gli articoli del link in firma.
    Il meccanismo comunque è abbastanza semplice e volendo lo possiaimo affrontare in maniera diretta andando per gradi.
    Intanto dimmi come l'utente dovrebbe vedere i dati dell'xml e di conseguenza, come dovrebbe modificarli, facile sarebbe ad esempio se il file xml venisse modificato integralmente dall'utente che avesse la possibilità di aggiungere tag e altro al file xml.
    In quel caso ti basterebbe caricare l'intero xml dentro ad una textarea e dare all'utente un tasto "Salva" che mandi al php il testo da riscrivere integralmente nell'xml.

  5. #5
    Ti descrivo cosa vorrei fare..

    Il File XML viene aggiornato continuamente sul server da un Agent che in base a degli stati
    modifica il contenuto del file XML.

    L'utente dal suo PC si collega all'Url lancia il file SWF e legge tramite flash i dati del file XML , che saranno incasellati dentro dei textbox che in linea di massima contengono numeri o booleani con al massimo circa 30 record totali.

    A suo piacimento l'utente modifica qualche dato e spedisce la modifica di un solo dato verso il server che a questo punto dovrebbe far partire (penso farò una cgi non ho ancora deciso) un programma che aggiorna il file XML.

    Non verranno mai aggiunti nodi al file , la struttura resterà sempre la stessa , cambierà solo lo stato di qualche variabile .

    Il fatto di dover inviare anche tutto il file XML di nuovo non mi preoccupa essendo solo pochi Kb.

    In pratica è una applicazione di controllo remoto che controlla alcuni parametri monitorati costantemente .

    Il sistema è totalmente completato mi manca solo l'interfaccia che già avevo fatto in HTML ma il continuo refresh della pagine è insopportabile ,per via dei dati che cambiano , quindi ho deciso di cambiare in flash.

    Grazie Manuel

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    In questo caso la mole di dati da gestire potrebbe crearti qualche problema, ma non perchè sia più complesso, solo per il fatto che nella gestione si può incappare in più errori che se dovessi gestire meno cose.
    Volendo potresti mandare solo il dato modificato e, previ verifica con i dati presenti nell'xml, dovresti innestarlo attraverso lo script cgi o quel che scegli.
    La dinamica da Flash risulta comunque identica, si crea innanzi tutto un oggetto URLVariables che contenga tutte le variabili che vuoi inviare allo script, dopodiché si crea un oggetto URLRequest che contiene i dati sotto forma di urlvariables, il metodo get o post e l'url a cui inviare questi dati. Ultima cosa, si crea un oggetto URLLoader che sarà il vettore di invio dei dati e che, volendo, recupererà dallo script esterno una risposta per il buon fine o meno della scrittura sul file xml.
    Genericamente quanto ho scritto lo potresti mettere dentro una funzione da richiamare a piacere quando necessario.

    Codice PHP:
    var request:URLRequest = new URLRequest();
    var 
    loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETEcomplete);
    function 
    SalvaDati (dataObj:Object) {
        var 
    tempUV:URLVariables = new URLVariables();
        for (var 
    item in dataObj) {
            
    tempUV[item] = dataObj[item];
        }
        
    request.data tempUV;
        
    request.method URLRequestMethod.POST;
        
    request.url "script.php";
        
    loader.load(request);
    }
    function 
    complete (evt:Event) {
        try {
            var 
    test:URLVariables = new URLVariables(evt.target.data);
            
    // dallo script esterno ti fai restituire una variabile "result" che contenga un ok o un altro valore e lo verifichi
            // in base a quello esegui le azioni che preferisci
            
    if (test.result == "ok") {
                
    // azioni in caso di buon fine
            
    } else {
                
    // azioni se il file non è stato scritto
            
    }
        } catch (
    e:Error) {
            
    // azioni se qualcosa non va nell'assegnazione dei dati alla variabile "test"
            // si attiva se per esempio ci sono errori nello script esterno e perciò l'output di quel file non è come ci si aspetta
        
    }


  7. #7
    Grazie per il codice

    Adesso bisogna mettere elmetto e fucile e andare in battaglia .

    Farò delle prove e strada facendo userò le strategie più consone in base al traffico.

    Sei stato gentilissimo

    Ti farò sapere l'esito.

    Grazie ancora saluti Manuel

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.