[php]代码库
import mx.events.EventDispatcher;
import mx.utils.Delegate;
class Emailer {
// required for EventDispatcher:
public var addEventListener:Function;
public var removeEventListener:Function;
private var dispatchEvent:Function;
// use to communicate with php script
private var _lv:LoadVars;
// holds address of sender
private var _sentFrom:String;
// constructor
public function Emailer() {
EventDispatcher.initialize(this);
_lv = new LoadVars();
}
//
private function dataReceived(dataxfer_ok:Boolean):Void {
// if some problem with loadVars transfer, pass back error=2
if (!dataxfer_ok) dispatchEvent({target:this, type:'mailSent', errorFlag:2});
// otherwise pass back error code returned from script
else dispatchEvent({target:this, type:'mailSent', errorFlag:Number(_lv["faultCode"])});
}
// Use loadvars object to send data (set to call dataReceived when script returns data)
public function sendEmail(sub:String, fn:String, fe:String, msg:String, rep:String):Void {
// if user already sent from this address, show error msg
if (_sentFrom == fe) dataReceived(false);
// otherwise set up and send
else {
_sentFrom = fe;
// specify function to handle results, make scope = Emailer
_lv.onLoad = Delegate.create(this, dataReceived);
// set up properties of lv to items to be POSTed
_lv.subject = sub;
_lv.name = fn;
_lv.email = fe;
_lv.message = msg;
_lv.reply = rep;
// call script
_lv.sendAndLoad("sendemail.php", _lv, "POST");
}
}
}