*Originally posted by Freddythunder *
Ahmed - I asked you in another thread what the difference is between using LoadVars and loadVariablesNum and you said ‘preference’, I don’t want to be telling people the wrong thing!!!
lol sorry, my bad 
Although it still is a preference, LoadVars is more functional since it has the onLoad event. If you’re loading large chunks of text into flash using loadVariablesNum and try to execute a function on it, big chance it won’t work… look at this:
echo 'myVar=some big value'
and then
loadVariablesNum("myscript.php", this)
trace(myVar)
Big change the script about would trace [FONT=courier new]undefined[/FONT], because the myVar might have not been fully loaded. with the LoadVars object, you would use the onLoad event, which ensures that trace is executed only once the text is fully loaded from the php script:
lv = new LoadVars()
lv.onLoad = function(success) {
if(success) {
trace(this.myVar)
}
}
lv.load("myscript.php")
LoadVars also loads the variable onto an object and not the timeline, that may or may not be an advantage. Another little thing is, you can use getBytesLoad() and getBytesTotal() with LoadVars, which you also could need when loading large chunks of data. You can also load data with no variables, try this:
echo 'this data is not contained within a variable';
and in flash:
lv = new LoadVars()
lv.onLoad = function() {
trace(unescape(this))
}
lv.load("myscript.php");
this would trace ‘this data is not contained within a variable’ (duh!)
If you want to learn more about LoadVars.send() and sendAndLoad(), check out jubba’s thread on sending variable to php, there’s an explaination on that =)
To sum it up, the LoadVars object is very similar to the XML object, only thing is it loads text as opposted to xml documents 
hope that helps! 