Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    10

    AS3 passgio var da php a as3 e viceversa

    Dunque, io ho un swf, inserito in un file carica.php, e leggo (dal php tramite _GET()) la variabile "variabile" dalla url. Tramite il flash, leggo l'echo dal php, e non funziona.

    cod php:
    -------------------------------------------------------
    <?php
    //$valore = $_GET['valore'];

    //echo ("valore=" . urlencode($_POST['valore']) . "&stoppa=222");

    echo"valore=22&";


    echo '
    <object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="550" height="400">
    <param name="movie" value="prendi.swf" />
    <param name="quality" value="high" />
    <embed src="prendi.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="550" height="400"></embed>
    </object>
    ';



    ?>

    se imposto io il valore della variabile "variabile", --> echo "variabile=73737373&";
    la & serve pr non far leggere altro a FLASH, va tutto bene. ma se la variabile la imposto con un _GET --> echo ("valore=" . urlencode($_POST['valore']) . "&stoppa=222"); FLASH, mi da undefined in load di "URLLoader" !!!
    Assurdo .... o sbaglio IO ???

    questo il codice del fla.
    var caricaTesto:URLLoader = new URLLoader();
    caricaTesto.dataFormat=URLLoaderDataFormat.VARIABL ES;
    testo_txt.wordWrap=true;
    testo_txt.autoSize=TextFieldAutoSize.LEFT;

    caricaTesto.addEventListener(Event.COMPLETE, onLoaded);

    function onLoaded(e:Event):void {

    try {
    testo_txt.text = e.target.data.valore;

    } catch(error:IOErrorEvent) {
    testo_txt1.appendText("IOErrorEvent catch: " + error);

    } catch(error:TypeError) {
    testo_txt1.appendText("TypeError catch: " + error);

    } catch(error:Error) {
    testo_txt1.appendText("Error catch: " + error);

    } finally {
    testo_txt1.appendText("Finally! \n --erroreeeee-- "+e.target.data.valore);
    }
    }

    pulsante_btn.addEventListener(MouseEvent.CLICK, visualizza);

    function visualizza(evt:MouseEvent):void{
    caricaTesto.load(new URLRequest("carica.php"));
    }

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Scusa ma se il flash è già dentro la pagina php, che senso ha richiamare la stessa pagina con URLLoader? Ti conviene usare le Flashvars e richiamare quella variabile direttamente nella pagina php, poi da flash la ricavi dalla proprietà stage.loaderInfo.parameters

    codice:
    <?php
    //$valore = $_GET['valore'];
    
    //echo ("valore=" . urlencode($_POST['valore']) . "&stoppa=222");
    
    echo"valore=22&";
    
    
    echo '
    <object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="550" height="400">
    <param name="flashvars" value="valore=22" />
    <param name="movie" value="prendi.swf" />
    <param name="quality" value="high" />
    <embed src="prendi.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="550" height="400"></embed>
    </object>
    ';
    ?>
    codice:
    // AS3
    try {
        trace(stage.loaderInfo.parameters["valore"]);
    } catch (err:Error) {
        trace("variabile non trovata");
    }
    Chiaramente prendilo come l'esempio che è per trarne le tue conclusioni.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    10

    lettura dal php !!

    EH ! e lo so, ma mi sono espresso male io, come al solito.
    Ho un tool, di prenotazione alberghi, inserito in una
    pagina php --> index.php?hotel=23
    dove ovviamente, "hotel" e' la variabile e "23" e' l' ID.
    devo leggere questo id, sulla url, da "dentro " la pagina (con il tool flash o con php), e spararlo ad una pagina php esterna o medesima, per poter poi fare una prenotazione o altro .
    E, non riesco a farlo !!!!!!! AGH... non demordo ()
    ANY IDEAS ?!?!?!?!
    thx lele

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Bene ok, quindi diciamo che la prima parte va bene nel modo in cui te la prospettavo, ora rimane la seconda parte in cui c'è però da capire se la pagina esterna deve essere caricata nel momento in cui la si richiama per inviargli il dato o se il richiamo deve essere "silente", senza che si apra l'altra pagina php.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    10
    quello che vuoi.
    silente o no !!! :-)

    parte flash :

    testo_txt.text = ('nome == ' + nome);

    parte php :

    diciamo che faccio

    echo "nome=giggi";

    fin qui , il flash e' embedded nel file pippo.php, sia he io richiami il file stesso (pippo.php) o un'altro, funziona.

    Il problema, e' che quando aggiungo :

    echo "nome=" . $_GET['valore'];

    dove valore, nella url e' cosi : pippo.php?valore=arturo
    NON FUNZIONA PIUUUUUUUUUUUUUUUUUUUUUUUUUUUU
    sto impazzendo !!!

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da leledt
    quello che vuoi.
    silente o no !!! :-)

    parte flash :

    testo_txt.text = ('nome == ' + nome);

    parte php :

    diciamo che faccio

    echo "nome=giggi";

    fin qui , il flash e' embedded nel file pippo.php, sia he io richiami il file stesso (pippo.php) o un'altro, funziona.

    Il problema, e' che quando aggiungo :

    echo "nome=" . $_GET['valore'];

    dove valore, nella url e' cosi : pippo.php?valore=arturo
    NON FUNZIONA PIUUUUUUUUUUUUUUUUUUUUUUUUUUUU
    sto impazzendo !!!
    No, macché quello che voglio :D a seconda di come si svolge il flusso si usano due metodi diversi!
    Comunque ti spiego perché con il tuo metodo non funziona... quando tu richiami il file php, lo richiami senza il valore, in questa riga:
    Codice PHP:
    caricaTesto.load(new URLRequest("carica.php")); 
    dovresti avere
    Codice PHP:
    caricaTesto.load(new URLRequest("carica.php?valore=arturo")); 
    In questo modo il file php avrà qualcosa da gestire in GET, non so se la cosa può risultarti chiara, ma quando richiami il file da flash non lo stai "riprendendo" dalla stessa pagina, lo stai solo richiamando un'altra volta.

    Mettiamo ordine al discorso, dimenticati quello che hai fatto finora e partiamo da 0.
    Abbiamo un file php che contiene un file swf (il codice html per visualizzarlo).
    Ci occorre "trasferire" una variabile che il php contiene in GET quando viene richiamato, nel file flash, in modo che questo la possa usare per alcuni scopi.
    Per "trasferire" il valore della variabile usiamo le flashvars.

    Codice PHP:
    $nome $_GET['valore'];
    echo 
    '
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="550" height="400">
    <param name="flashvars" value="nome=$nome" />
    <param name="movie" value="prendi.swf" />
    <param name="quality" value="high" />
    <embed src="prendi.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="550" height="400"></embed>
    </object>
    '

    Ora all'interno del filmato flash, nel primo frame della timeline principale "cerchiamo" il valore passato con flashvars e lo troviamo all'interno del parametro "stage.loaderInfo.parameters".
    Abbiamo solo un problema, dobbiamo dire al flash di non fare nulla nel caso che quella variabile non esista e lo facciamo usando il costrutto try...catch
    Codice PHP:
    var nome:String "";
    try {
        
    nome stage.loaderInfo.parameters["nome"];
    } catch (
    err:Error) {
        
    // se non mettiamo nulla qui dentro, l'errore non viene mostrato se manca la variabile in GET

    Da quel punto in poi possiamo usare la variabile "nome" all'interno del nostro filmato flash nella maniera che meglio ci aggrada, passandola anche ad un altro file php nel miglior modo che preferiamo.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    10

    forse sono stanco.

    Non so probabilmente sono stanco... ma non mollo :-D

    allego i due files, (.fla e php). Se vuoi dargli un'okkiata ! ti ringrazio molto, comunque.

    Sviluppo in locale (localhost:3000) in ambiente wamp.

    Non mi arrendo mai ....
    grazie, lele

    http://leledt.com/18.45.zip

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Difficilmente potrò vedere i file prima di qualche giorno, comunque hai provato a fare come ti ho detto e non ti riesce?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    10

    nein .....

    non va.

    incredibile.
    Questo da "visualizza html" dal broswser :

    ___________________________________________
    <object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="550" height="400">
    <param name="flashvars" value="nome=$nome" />
    <param name="movie" value="prendi.swf" />
    <param name="quality" value="high" />
    <embed src="prendi.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="550" height="400"></embed>
    </object>
    ___________________________________
    come vedi php, non ha interpretato $nome !!!! ()


    e comunque ho provato, a metterlo direttamente in html, e non riesce a prendere la vsriabile dalla url....

    ma insisto, INSISTO !!!! :-)
    he he grazie , lele

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    A questo punto direi di usare i punti per unire la variabile alla stringa:

    Codice PHP:
    <?php
    $nome 
    $_GET['valore']; 
    echo 

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="550" height="400"> 
    <param name="flashvars" value="nome='
    .$nome.'" /> 
    <param name="movie" value="prendi.swf" /> 
    <param name="quality" value="high" /> 
    <embed src="prendi.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="550" height="400"></embed> 
    </object> 
    '
    ;
    ?>
    PS. ho provato ad aprire il file ma non riesco, ho il CS3 e mi da formato inaspettato.

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.