Ho cambiato idea, li metto scaricabili per i posteri. Ci sono due versioni:
- databinding (praticamente niente codice)
- via codice, riportato qui sotto
codice:
// importiamo la classe Alert e WebServiceConnector
import mx.controls.Alert
import mx.data.components.WebServiceConnector
// creiamo uno shortcut al webserviceconnector
var conn:WebServiceConnector = connector;
// impostiamo i parametri per il connector
conn.WSDLURL = "http://www.forta.com/misc/flash2004tfts/email.cfc?WSDL";
conn.operation = "sendEmail";
// creiamo un oggetto che gestisca il click sul pulsante
var listener = new Object();
listener.click = function(evt)
{
// al click sul pulsante, verifichiamo che tutti i campi siano
// pieni, a te poi fare ulteriori verifiche sui campi email, o
// se metterli nascosti e preimpostati
var isFromDefined:Boolean = from_txt.text != "";
var isToDefined:Boolean = to_txt.text != "";
var isSubjectDefined:Boolean = subject_txt.text != "";
var isMessageDefined:Boolean = message_txt.text != "";
// se tutti i campi sono pieni, inviamo
if(isFromDefined && isToDefined && isSubjectDefined && isMessageDefined){
// creiamo un oggetto generico che rimanga
// in ascolto della risposta dal connector
var responder:Object = new Object();
responder.result = function(evt:Object):Void
{
// quando arriva la risposta, mostriamola
Alert.show(evt.target.results, "Risposta dal server", Alert.OK);
};
// mettiamo l'oggetto in ascolto dell'evento dal connector
conn.addEventListener("result", responder);
// impostiamo la proprietà param del connector con l'array dei parametri
conn.params = [from_txt.text, to_txt.text, subject_txt.text, message_txt.text];
// avviamo l'operazione
conn.trigger();
} else {
// altrimenti, fermiamo e avvertiamo
var msg:String = "Per inviare il messaggio devi riempire tutti i campi";
Alert.show(msg, "Errore!", Alert.OK);
}
};
// mettiamo l'oggetto in ascolto del click
send_pb.addEventListener("click", listener);