Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794

    [AS3] - gestire variabili php

    ragazzi ho questo codice:

    var request:URLRequest = new URLRequest("coordinate.php");
    request.method = URLRequestMethod.GET;

    var loader:URLLoader = new URLLoader();
    loader.dataFormat = URLLoaderDataFormat.VARIABLES;
    loader.addEventListener(Event.COMPLETE, completeHandler);
    loader.load(request);
    var miox: Number;
    var mioy: Number;
    function completeHandler(evt:Event):void {

    miox = evt.target.data.x;
    mioy = evt.target.data.y;


    }

    la pagina coordinate.php è questa:

    <?PHP
    $miox = 41.897422;
    $mioy = 12.513063;

    $returnVars = array();
    $returnVars['x'] = 10
    $returnVars['y'] = 15;
    $returnString = http_build_query($returnVars);

    //send variables back to Flash
    echo $returnString;

    ?>

    non mi viene restituito alcun valore passato php. come mai?

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Per gestire le variabili della querystring ricevuta dall'esterno è necessario passare la proprietà evt.target.data per un URLVariables che effettuerà la codifica e da cui sarà possibile accedere alle proprietà singole.

    Codice PHP:
    var loader:URLLoader = new URLLoader(new URLRequest("coordinate.php"));
    loader.addEventListener(Event.COMPLETEcompleteHandler);
    var 
    miox:Numbermioy:Number;
    function 
    completeHandler (evt:Event):void {
        try {
            var 
    vars:URLVariables = new URLVariables(evt.target.data);
            
    miox vars.x;
            
    mioy vars.y;
            
    trace ("miox: "+miox+" e mioy: "+mioy);
        } catch (
    err:Error) {
            
    trace (err);
        }

    Però per funzionare correttamente devi passare la stringa che visualizzi da php per un html_entity_decode(), altrimenti la & non viene letta da flash e la codifica non avviene correttamente.

    Codice PHP:
    <?php
    $returnVars 
    = array();
    $returnVars['x'] = 10;
    $returnVars['y'] = 15;
    $returnString http_build_query($returnVars);

    echo 
    html_entity_decode($returnString);
    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    Niente, non vengono recuperate le variabili php. Non mi risultano i valori... come mai?

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non saprei, io ho testato il codice e mi funziona perfettamente. Salvo che tu non lo stia provando in locale e quindi senza passare per un parser php.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    funziona!!! era che dovevo gestire i dati direttamente nella funzione completeHandler altrimenti i valori si perdono una volta terminata la funziona anche se im sembra molto strano...
    Vabbè grazie mille

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non c'è nulla di strano in realtà, è il ragionamento del sistema asincrono, per cui puoi gestire i dati solo dopo averli ottenuti effettivamente, ma nel mentre che questo succede non viene comunque bloccata l'esecuzione del filmato nell'attesa e il parser di actionscript continua a leggere le istruzioni successive riga per riga, eseguendole nell'ordine in cui sono state scritte, salvo che non si tratti di altri eventi asincroni o nei casi che un'istruzione abbia bisogno dell'input dell'utente per essere eseguita.
    Perciò i dati ricevuti dall'esterno sono persistenti solo all'interno della funzione legata all'evento che li ha generati.

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.