Beh con WSDL/SOAP in flash è molto molto semplice. Ora ti faccio qualche esempio.
Il lato server è un po' più complesso. Soprattutto bisogna aver capito bene il meccanismo del WSDL/SOAP. Per farlo basta leggersi le guide sul w3c.
LATO SERVER
Facciamo un esempio usando nusoap/php lato server.
Creiamo libri.php
	codice:
	<?php
require_once('nusoap.php'); //includiamo la libreria nusoap
                            //la si trova con una ricerca su google
$NAMESPACE = 'http://tgiulio.homeip.net/soap/libri'; //decidiamo il namespace (vedi w3c->XML)
$server = new soap_server; //creiamo un oggetto/server nusoap
$server->debug_flag=false;
$server->configureWSDL('Game', $NAMESPACE); //configuriamo WSDL
$server->wsdl->schemaTargetNamespace = $NAMESPACE;
/*====== DICHIARIAMO I TIPI WSDL =======
  Possono essere semplici, complessi, array, booleani, date ecc. (vedi XML/SOAP/WSDL e nusoap)
  Questo è il cuore del WSDL. Si specifica come andranno scambiati i dati.
  Per esempio creiamo un array di libri.
*/
//DEFINIAMO IL MODELLO DI LIBRO
$server->wsdl->addComplexType(
    'libro',
    'complexType',
    'struct',
    'all',
    '',
    array(
        'autore' => array('name'=>'autore','type'=>'xsd:string'),
        'titolo' => array('name'=>'titolo','type'=>'xsd:string'),
        'pagine' => array('name'=>'pagine','type'=>'xsd:int')
    )
);
//DEFINIAMO L'ARRAY DI LIBRI
$server->wsdl->addComplexType(
    'Libri',
    'complexType',
    'array',
    '',
    'SOAP-ENC:Array',
    array(),
    array(   array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:Libri[]')
    ),
    'tns:Libro'
);
/* ========== REGISTRIAMO LE PROCEDURE/METODI WSDL =======
   In sintesi decidiamo quali servizi vogliamo mettere a 
disposizione, praticamente le funzioni. Quali parametri 
richiedono e cosa ritornano.
*/
//questa funzione che registriamo non richiede parametri
//e restituisce una lista di libri 
$server->register(
    'listaLibri',
    array(), //questo array decide i parametri che il metodo richiede
             //ma adesso non ne abbiamo bisogno
    array('return'=>'tns:Libri'), //definiamo che il metodo restituisce la lista di libri
    $NAMESPACE
);
/* ========= LA FUNZIONE listaLibri ========
   Con WSDL abbiamo:
   1 - definito dei tipi (libro e libri)
   2 - definito dei metodi (listaLibri)
   Ora bisogna decidere come ritornare la lista di libri.
   Ovviamente bisogna rispettare il formato stabilito quando abbiamo definito i tipi.
*/
function listaLibri() {
  //non mi metto a fare cose strane... creo una risposta fissa
  //ecco due libri
  $libro1=Array('nome'=>'Divina commedia','autore'=>'Dante','pagine'=>3333);
  $libro2=Array('nome'=>'Al di la del bene e del male','autore'=>'Nietzsche','pagine'=>222);
  //la funzione listaLibri ritorna una lista di libri
  //inutile dire che quello che ritorna dev'essere coerente
  //con quello che noi abbiamo specificato prima ;)
  return Array($libro1,$libro2);
}
//ora chiudiamo la faccenda con il codice di nusoap che intercetta le richieste
$HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])
                        ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
$server->service($HTTP_RAW_POST_DATA);
?>
 
A questo punto se salvi la pagina e metti a disposizione la libreria nusoap puoi anche aprire la pagina con il browser e  troverai un introduzione ai metodi messi a disposizione con le loro caratteristiche. A questi metodi faremo ora riferimento con flash allo scopo di ricevere la lista di libri 
LATO CLIENT (FLASH)
Ora ci collegheremo con flash al nostro servizioweb supponendo di averlo messo in http://localhost/libri.php.
Userò solo AS ma è possibile usare WSDL/SOAP anche tramite l'interfaccia (anche se finisce per essere più scomodo secondo me).
	codice:
	import mx.services.WebService; //importiamo la classe flash
                               //il componente webserviceconnector dev'essere nella libreria
//creiamo un webservice e carichiamo il suo WSDL
libri_ws = new WebService("http://localhost/libri.php?wsdl"); 
//il ?wsdl serve per nusoap per resituire direttamente l'XML del WSDL 
//(provate ad aprirlo con il browser)
//a questo punto flash contatta libri.php e richiede la descrizione dei tipi e delle procedure
//esistono due eventi uno per gestire gli errori in fase di caricamento del wsdl
libri_ws.onFault = function(fault){
  if(fault.faultCode!=undefined) str="libri_ws [ERROR]["+fault.faultCode+"]"+fault.faultstring;
  else str="libri_ws [ERROR]:"+fault.faultstring;
  trace(str); //se qualcosa va male capiremo il perchè
};
//l'altro per capire che tutto è andato bene
libri_ws.onLoad = function(WSDLDocument){
  //abbiamo caricato correttamente il wsdl e a questo punto possiamo
  //usare le procedure fornite dal servizio.
  //libri.php offre solo listaLibri ma potrebbe offrire un centinaio di altre procedure ;)
  //effettuiamo una chiamata alla procedura listaLibri :)
  listaLibriCall = _root.libri_ws.listaLibri();
  //anche listaLibriCall ha i suoi eventi
  //vediamo la gestione errori
  listaLibriCall.onFault = function() {
    //qualcosa è andato storto
    //leggi la guida di flash per capire meglio la gestione
    //errori in questa fase
  }
  //ed ora vediamo cosa succede quando riceviamo la lista
  listaLibriCall.onResult = function(result) {
    //mitico!!! abbiamo la lista!!!
    libro1=result[0];
    libro2=result[1];
    trace(libro1['nome']); //stamperà Divina commedia!! :)
  }
}
 
Ecco fatto 
 
E' stata dura ma ce l'ho fatta!! 
Sottolineo che esistono sistemi più semplici per usare il webconnector ma dato che ero in ballo ho usato come esempio il migliore  
 
Ciao!!!