this is just a variable. Whenever you call a function this is also declared automatically.
Every function has a scope(read more about variable and function scope) and whatever the scope of the function is that is what "this" will be equal to. For example. Lets say you declare a function "myFunc" in the first frame of your fla movie. the scope of the function is it's parent object, [Main Timeline] (i think) so if you draw a mental pic should look like this:
[Main Timeline]
|
+---myFunc

now if you type trace(this) inside of myFunc it should trace [Main Timeline];
All of it happens in the background, the as3 interpretor does it.
Here is another quick example.
var myObj = {
method_one: function(){trace(this)}
};
flash creates an object with 1 function property "method_one"
the scope of the function now is
[myObj]
|
+---method_one
Flash looks at the tree and creates a variable "this" inside method_one and makes it equal to the parent object, which in this case is myObj therefore this = myObj.
Keep in mind "this" is read only. Only flash as the rights to change it not the developer there for this is illegal in your code - var this = myObj.