Formulaire facile, formulaire rapide.
Soyons fous, histoire de prendre de bonnes habitudes, voici une petite classe qui peut s’averer très pratique dans le cas de formulaire simple et rapide à mettre en place.
import ..Relegate; import mx.events.EventDispatcher; class utils.Formulaire { private var _sAction:String; private var _sMethod:String; public var dispatchEvent:Function; public var addEventListener:Function; public var removeEventListener:Function; public var onReceive:Function; public var onSend:Function; private var _aInput:Array; private var _nIndex:Number; function Formulaire(pAction:String, pMethod:String) { _aInput = []; _nIndex = 0; _sAction = pAction; _sMethod = pMethod; EventDispatcher.initialize(this); addEventListener("onReceive", this); addEventListener("onSend", this); } public function addInput(pName:String, pText:TextField):Void { var oInput:Object = new Object(); oInput.name = pName; oInput.txt = pText; pText.tabIndex = _nIndex; _nIndex++; pText.onSetFocus = Relegate.create(this, _onSetFocus, pText, pText.text); pText.onKillFocus = Relegate.create(this, _onKillFocus, pText, pText.text); _aInput.push(oInput); } private function _onSetFocus(pObject:Object, pText:TextField, pValue:String):Void { if(pText.text == pValue) { pText.text = ""; } } private function _onKillFocus(pObject:Object, pText:TextField, pValue:String):Void { if(pText.text == "") { pText.text = pValue; } } public function send():Void { var lvSend = new LoadVars(); var lvLoad = new LoadVars(); var nInput:Number = _aInput.length; for(var i:Number=0; i<nInput; i++) { lvSend[_aInput[i].value] = _aInput[i].txt.text; } lvLoad.ignoreWhite = true; dispatchEvent({type: "onSend", target: this}); lvLoad.onLoad = Relegate.create(this, _onLvLoad, lvLoad); lvSend.sendAndLoad(_sAction, lvLoad, _sMethod); } private function _onLvLoad(pSuccess:Boolean):Void { dispatchEvent({type: "onReceive", target: this, success:pSuccess}); } }
Download this code: Formulaire.as
Utilisation :
var form:Formulaire; sendForm = function () { form.send(); form.onSend = Delegate.create(this, onSend); form.onReceive = Delegate.create(this, onReceive); } onSend = function(pEvent:Object):Void { trace("envoi en cours > "+pEvent); } onReceive = function(pEvent:Object):Void { trace("envoi terminé > "+pEvent.success); } form = new Formulaire("/scripts/sendMail.php", "POST"); form.addInput("nom", txtNom); form.addInput("mail", txtMail); form.addInput("message", txtMessage); btnEnvoyer.onRelease = Delegate.create(this, sendForm);
Download this code: ExempleFormulaire.as
février 10th, 2007 at 1:58
Cool, c’est exactement ce que je cherchais.
mars 14th, 2007 at 20:21
Bonjour,
exusez moi, mais je ne comprend pas trop cette ligne :
“import ..Relegate;”
De plus, ça me genere une erreur.
J’ai essayé de modifier par :
“import mx.utils.Relegate;”
mais rien de plus…
Si vous pouviez m’eclaircir un peu ça serait sympa
mars 14th, 2007 at 22:59
Tu peux remplacer par import net.tekool.utils.Relegate;
et télécharger une classe Relegate sur le site Tekool.net : http://www.tekool.net/flash/class/relegate/
février 11th, 2008 at 17:20
Bonjour,
Je ne vois pas ta classe ?
Merci