Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    170

    Interfaccia PHP+ActionScript

    Salve a tutti.
    Sto creando una app in flash in grado di prendere dei dati da un db mysql tramite uno script php.

    MySql e PHP tutto ok lo script mi genera la stringa di dati con la & per suddividere in modo di recuperare i dati da flash.

    Ora arrivato alla parte dell'action script avevo intenzione di organizzare la situazione ad oggetti come faccio con tutto .

    Ho iniziato a fare esperimenti e diciamo che ho fatto una prima classe di prova per capire se potevo utilizzare loadVars all'interno di una classe.
    Ho scritto questo codice e vorrei che qualcuno mi chiarisse un po come sfruttare le classi di file .as.

    metto il codice della classe che ho fatto ma l'onLoad(success) funziona mi da true ma se provo a leggere una variabile da myResult mi da sempre undefined non mi carica i dati della pagina php. Mentre se lo stesso codice lo faccio da un pulsante nello stage del sorgente fla funziona perfettamente.

    Grazie e spero di essere stato chiaro ciao!


    codice:
    
    class risultati{
       
            //Variabili	
    	var mc_tmp:MovieClip;
    	var mc:MovieClip;
    	var myResult:LoadVars;
    
    	var i:Number;	
    	var y_tmp:Number;	
    	
    	var totali:Number;
    	
            //Costruttore
    	function risultati(){myResult = new LoadVars();}
    	
    	//funzione per settare il movieClip da duplicare
            function setMc(mc:MovieClip){this.mc_tmp=mc;}
    	
            //funzione che recupera i dati e moltiplica gli mc
    	function viewResult(){
    		
                    //fa il load dei dati
    		this.myResult.load("http://localhost/ephp/result/result.php");
    
                    //aspettiamo il caricamento dei dati
    		this.myResult.onLoad = function(success) {
    			
                            //totali è una var che mi restituisce lo script php
    			this.totali = this.myResult["totali"];
    			
                            //sono fermo qua xchè this.totali è null mentre success è true ,quindi carica i dati?
    			trace("Totali : " + this.totali);
    
                           //qui in poi è da sistemare e vorrei capire come indirizzare il duplicate movie clip nello stage, forse devo passare l'MC al costruttore.
    			if(totali>0){
    				 for(i=1;i<totali;i++){
    					 trace("Sto duplicando siamo a " + i);
    					 y_tmp = mc_tmp._y + (30 *i)
    					 mc = mc_tmp.duplicateMovieClip("prod"+i,i,{_y:y_tmp});
    					 mc.mod = myResult["modello"+i];
    				 }
    			 }
    		}
    	}
    	
    	
    	
    }

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non ho letto con attenzione il codice della classe, ma da quel che hai scritto immagino che tenti poi di recuperare le variabili da una parte diversa dalla funzione onLoad.

    Se comprendo come funziona la classe dovrei fare così:
    Codice PHP:
    var istanza = new risultati();
    istanza.setMc(qualcosa)
    istanza.viewResult(); 
    e niente di più.

    Immagino poi che l'mc debba avere delle caratteristiche intrinseche per cui l'esecuzione del codice vada a riempirlo in qualche modo.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    170
    Bhe questo

    codice:
    var istanza = new risultati(); 
    istanza.setMc(qualcosa) 
    istanza.viewResult();
    è il codice che mi permette di istanziare il mio oggetto e questo lo faccio nel flash...
    Il mio problema è nel codice come istanziare lo so, e il viewResult lo eseguo nel release del bottone che fa partire tutto diciamo...

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non avevo letto bene il codice, dentro alla funzione onLoad il "this" è riferito all'istanza del LoadVars e non alla classe stessa.

    PS. Io la classe la scriverei così sfruttando gli eventi e scrivendoli direttamente sul fla:

    Codice PHP:
    class risultati {
        private var 
    L:LoadVars;
        private var 
    R:Object;
        public var 
    onLoadSuccess:Function;
        public var 
    onLoadFault:Function;
        public function 
    risultati () {
            
    = new LoadVars();
            
    L.onLoad __onLoad__;
        }
        public function 
    getResult (u:String) {
            
    L.load(u);
        }
        private function 
    __onLoad__ (s) {
            if (
    s) {
                for (var 
    prop:String in L) {
                    if (
    prop != "onLoad" && prop.split(" ").join("") != "") {
                        
    R[prop] = L[prop];
                    }
                }
                
    onLoadSuccess(R);
            } else {
                
    onLoadFault();
            }
        }

    Codice PHP:
    var istanza = new risultati();
    istanza.onLoadSuccess = function (result:Object) {
        for (var 
    prop in result) {
            
    trace(prop+": "+result[prop]);
        }
    }
    istanza.getResult("http://localhost/ephp/result/result.php"

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    170
    Ok grazie mille ho risolto come hai detto.
    Non pensavo che dentro all'onLoad il this fosse riferito al LoadVars ma quindi come risolvo il fatto di assegnare in questo metodo var all'oggetto?

    Cioè collego all'onLoad del mio LoadVars della classe ad un metodo mio che gestisce i dati diciamo

    function myOnLoad(success){

    da qui dentro come faccio a memorizzare i dati non so in un array della classe? non posso?

    }

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    170
    Meglio fare un nuovo post per il problema di loadVars qua ormai è offTopic un po...

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    No, è corretto proseguire qui, riporto il tuo messaggio e chiudo l'altra discussione:

    Salve a tutti.
    Praticamente ho una classe in cui nel costruttore istanzio un LoadVars.
    Tutto apposto collego all'onLoad un mio metodo e da li gestisco i dati.

    Il mio problema sta dentro questo metodo. Come mi hanno detto in un altro post all'interno di questo metodo il this si riferisce al loadVars. Ma come faccio a richiamare variabili del mio ogetto in cui si trova il metodo onLoad??

    Spero di essere stato chiaro, in ogni caso sotto metto un po di codice...

    codice:
    class prova{
    var miaVar:String;
    var mioLoader:LoadVars;
    function prova(){
    mioLoader = new LoadVars();
    mioLoader.onLoad = mioOnLoad;
    }
    function mioOnLoad(success){
    //ecco qui se faccio...mi stampa ma come faccio a inserire il contenuto
    di questa var dentro miaVar di questa classe..
    trace(this["miavar"]);
    }
    }
    Appena riesco ti do una risposta.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    170
    Sono un genio era semplice alla fine la soluzione.....
    Basta che quando istanzio il LoadVars metto un riferimento all'oggetto stesso

    mioLoad = new LoadVars();
    mioLoad.oggetto = this

    poi dentro l'onLoad basta che richiamo l'oggetto

    this["oggetto"].attributi

    ed il gioco è fatto...

    Ciao a tutti.

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.