AS2 :: Guestbook Class
Submitted by hasan on Fri, 07/07/2006 - 07:00.
Goal: To devise an easy way to add user interaction to a full-Flash site, in this case a guestbook.
class labs.otuome.utils.Guestbook
{
private var _earl:String;
private var _display;
private var _getEntries:LoadVars;
private var _sender:LoadVars;
private var _receiver:LoadVars;
private var _refresh:LoadVars;
private var _mainTL:MovieClip;
private var _validname:Boolean;
private var _validemail:Boolean;
private var _validcity:Boolean;
private var _validmsg:Boolean;
private var _array:Array;
private var _uri:String;
public function Guestbook(target:MovieClip)
{
_mainTL = target;
}//end constructor
//retreive the specified posts
public function getPosts(url:String,target,min:Number,max:Number)
{
_earl = url;
_display = target;
_getEntries = new LoadVars();
_getEntries.onLoad = function(success:Boolean)
{
if (success)
{
target.text = this.strflash;
}
else
{
target.text = this.strflash;
}
}
_getEntries.load(_earl);
}
//get the user-entered info and insert into the database
public function addPost(fields:Array,url:String,target)
{
_array = fields;
_uri = url;
_display = target;
checkPost();
}
//basic validation stuff
private function checkPost()
{
_validname = false;
_validemail = false;
_validcity = false;
_validmsg = false;
if (_mainTL.gname.text != "")
{
_validname = true;
}
else
{
_mainTL.msg.text = "Please complete all fields"
}
if (_mainTL.gmail.text == "")
{
_mainTL.msg.text = "I need your email address";
}
else if (_mainTL.gmail.text.indexOf("@") == -1 || _mainTL.gmail.text.indexOf(".") == -1)
{
_mainTL.msg.text = "Please provide a valid email";
}
else
{
_validemail = true;
}
if (_mainTL.gfrom.text != "")
{
_validcity = true;
}
else
{
_mainTL.msg.text = "Please complete all fields"
}
if (_mainTL.gmsg.text != "")
{
_validmsg = true;
}
else
{
_mainTL.msg.text = "Please complete all fields"
}
processCheck();
}
//2nd phase of validation (puts 2 steps between the FLA and class
private function processCheck()
{
if (_validname && _validemail && _validcity && _validmsg)
{
_addPost(_array,_uri,_display);
}
}
//now you can send the data
private function _addPost(flds:Array,script:String,target)
{
_sender = new LoadVars();
_receiver = new LoadVars();
_receiver.onLoad = function()
{
_mainTL.msg.text = this.statusMsg;
}/**/
for(var i=0;i<flds .length;i++)
{
_sender[flds[i]] = _mainTL[flds[i]].text;
trace(_sender[flds[i]]); //use for debugging
_mainTL[flds[i]].text = "";
}
_sender.sendAndLoad(script,_receiver,"POST");
getPosts(_earl,target);
}
}//end class

