Nuova lezione, questa volta sull'uso di estensione PixService per effettuare chiamate remote.
Chiamate che caricherà i dati in modo semplice e anche effettuare chiamate a servizi remoti complessi (AMF, HTTP ...).
Il PixService estensione contiene diverse implementazioni concrete:
- PXHTTPService: Chiamate verso pagine indietro distanza di dati;
- PXStreamService: chiamate a pagine remote restituendo una URLStream;
- PXSharedObjectService: Le chiamate verso un SharedObject;
- PXAMFService: invito a un servizio di AMF;
- PXAMFMultipleServices: Più chiamate ai servizi di AMF (in un solo passaggio).
L'API definita nel nucleo di Pixlib permette per ciascuno di questi servizi:
- serie di argomenti da aggiungere durante la chiamata;
- Iscriviti a cuffie per monitorare lo stato della chiamata;
- definire un processo di de dati di serializzazione, se necessario.
Prendete un primo esempio con la classe PXHTTPService.
pacchetto { pixlib . core . PXBaseDocument ; net importazione nucleo pixlib PXBaseDocument ...; pixlib . log . PXDebug ; net importazione log PXDebug pixlib ...; pixlib . log . PXTraceLayout ; net importazione log PXTraceLayout pixlib ...; pixlib . log . addLogListener ; net importazione log addLogListener pixlib ...; pixlib . services . PXHTTPService ; net importazione servizi pixlib PXHTTPService ...; pixlib . services . PXService ; net importazione servizi pixlib PXService ...; pixlib . services . PXServiceEvent ; net importazione pixlib servizi PXServiceEvent ...; . URLRequestMethod ; URLRequestMethod import flash.net.; Sample extends PXBaseDocument Esempio public class estende PXBaseDocument { onDocumentReady ( ) : void funzione onDocumentReady Override protected (): void { getInstance ( ) ) ; addLogListener (PXTraceLayout getInstance ().) String = "Anonymous" ; var username: String = "Anonymous"; String = "" ; var pwd: String = ""; PXService = new PXHTTPService ( "http://www..../getSession.php" , URLRequestMethod . POST ) ; Servizio var: PXService = new PXHTTPService (. "http://www..../getSession.php" URLRequestMethod POST); "login" , username , "pass" , pwd ) ; setArguments Servizio ("login", username, "pass", pwd).; ( PXServiceEvent . onDataResultEVENT , _onResult ) ; AddEventListener Servizio. (PXServiceEvent onDataResultEVENT, _onResult.) ; Servizio execute ().; } _onResult ( event : PXServiceEvent ) : void funzione privata _onResult (evento: PXServiceEvent): void { event . result , this ) ; PXDebug DEBUG. (Risultato Evento, questo.) } } }
Sopra quindi facciamo una semplice chiamata alla pagina "getSession.php" specificando che inviamo modalità "POST" argomenti.
Abbiamo poi rivolgiamo i nostri due argomenti tramite i "setArguments ()" metodo che per le opere PXHTTPService come un "nome / valore" coppia. Qui la proprietà "login", quindi il suo valore, la proprietà "pass" e il suo valore.
Poi aggiungere un listener per monitorare il risultato restituito da questa chiamata.
Naturalmente, è possibile utilizzare direttamente la classe PXHTTPService invece di passare attraverso l'interfaccia PXService. Ciò consente l'uso di metodi specifici per questa classe.
PXHTTPService = new PXHTTPService ( "http://www..../getSession.php" , URLRequestMethod . POST ) ; Servizio var: PXHTTPService = new PXHTTPService (. "http://www..../getSession.php" URLRequestMethod POST); "login" , username ) ; AddVariable Servizio ("login", username).; "pass" , pwd ) ; AddVariable Servizio ("pass", pwd).; ( PXServiceEvent . onDataResultEVENT , _onResult ) ; AddEventListener Servizio. (PXServiceEvent onDataResultEVENT, _onResult.) ; Servizio execute ().;
Questa regola si applica a tutte le classi di PixService.
Le altre chiamate funzionano allo stesso modo (grazie PXService), ma se un po 'più specifico per classe PXAMFMultiServices.
pacchetto { pixlib . core . PXBaseDocument ; net importazione nucleo pixlib PXBaseDocument ...; pixlib . log . PXDebug ; net importazione log PXDebug pixlib ...; pixlib . log . PXTraceLayout ; net importazione log PXTraceLayout pixlib ...; pixlib . log . addLogListener ; net importazione log addLogListener pixlib ...; pixlib . services . PXAMFMultiServices ; net importazione pixlib servizi PXAMFMultiServices ...; pixlib . services . PXService ; net importazione servizi pixlib PXService ...; pixlib . services . PXServiceEvent ; net importazione pixlib servizi PXServiceEvent ...; Sample extends PXBaseDocument Esempio public class estende PXBaseDocument { onDocumentReady ( ) : void funzione onDocumentReady Override protected (): void { getInstance ( ) ) ; addLogListener (PXTraceLayout getInstance ().) String = "Anonymous" ; var username: String = "Anonymous"; String = "" ; var pwd: String = ""; PXAMFMultiServices = new PXAMFMultiServices ( "http://www.../index.php" ) ; servizi VAR: PXAMFMultiServices PXAMFMultiServices = nuove ("http://www.../index.php"); "HelloWorld" , "getPrompt" ) ; Servizi AddService ("HelloWorld", "getPrompt").; / / Ascoltare per servizio specifico risposta specifica e passare gli argomenti PXService = services . addService ( "SessionService" , "getSession" ) ; var session = PXService AddService servizi ("SessionService", "getSession"). username , pwd ) ; sessione setArguments (username, pwd).; ( PXServiceEvent . onDataResultEVENT , _onSession ) ; sessione addEventListener. (PXServiceEvent onDataResultEVENT, _onSession.) / / Ascolta per la risposta globale ( PXServiceEvent . onDataResultEVENT , _onResult ) ; servizi addEventListener. (PXServiceEvent onDataResultEVENT, _onResult.) ; servizi execute ().; } _onSession ( event : PXServiceEvent ) : void _onSession private function (event: PXServiceEvent): void { event . result , this ) ; PXDebug DEBUG. (Risultato Evento, questo.) } _onResult ( event : PXServiceEvent ) : void funzione privata _onResult (evento: PXServiceEvent): void { event . result , this ) ; PXDebug DEBUG. (Risultato Evento, questo.) } } }
La classe permette PXAMFMultiServices attaccanti diversi servizi di AMF in una chiamata remota. Tramite il "AddService ()" metodo è possibile aggiungere nuove chiamate con per ciascuno dei parametri e persino cuffie, ogni servizio essendo PXService pieno.
PixService la libreria è disponibile nella pagina Download , fonti su SVN e la documentazione qui .
Codifica felice con Pixlib







