@kemberexp, there are many "hidden" variables in Axure. [[This]] is a pointer to the widget on which your interaction code is placed, like and OnClick event, and [[Target]] is a pointer to the widget on which an action is aimed, for instance, in "Move myPanel by (0, 100)" the widget named "myPanel" would be the Target. The double square brackets, [[ ... ]] are used in Axure programming to refer to a variable.
Now, widgets have various properties, like their text content, their location, size, etc. Location is defined in typical Cartesian coordinates with two variables, x (horizontal distance in pixels from the left edge of the viewport, or container) and y (vertical distance from the top edge.) So, [[Target.x]] refers to the location of the left side of the target widget, relative to its container. (Usually this is the browser window, but if that target widget is in a dynamic panel, the x value is relative to that panel.) The dot (period) is a way to "chain" variables together, so [[Target.x]] literally means, return the value of the variable x contained in the variable Target which points to the widget myPanel. The end result is that the location of the left side of myPanel is known.
Axure provides several alternate variables for x and y which include top, bottom, left, right so your code can be easier to read.
[[This.left]] = [[This.x]]
[[This.top]] = [[This.y]]
[[This.right]] = [[This.x + This.width]]
[[This.bottom]] = [[This.y + This.height]]
[[This.bottom+1]] = One pixel below this widget
Essentially, [[This]] and [[Target]] are shorthand for setting up a local variable, like the venerable "LVAR1". You could set up a local variable where LVAR1 refers to the widget, "myPanel" and then refer to that widget's properties.
- List item
[[Target.x]] = [[LVAR1.x]] where LVAR1 = widget 'myPanel' ...as in this interaction code:
So, [[Target.x]] and [[This.text]] are not only easier and faster to code, They are reusable. That same action can be copied and pasted to refer to other widgets (targets) and/or used for other events. As you code more and more in Axure you'll find this is very powerful and time-saving. Also, a statement like,
Move myPanel to ( [[Target.x]] , [[This.bottom+1]] provides a great way for a widget to essentially say, "move myPanel to the same x-location where it already is and tuck it just below wherever I am," or in other words, "don't move it horizontally, only vertically." You don't have to know or calculate the x-location of the target widget, nor do you need to know or calculate the height of "This" widget.
At this point, you should be thinking, "AHA! So now it doesn't matter if my sections are longer in length, or even if they change in length (height)." You can just use the relative variables, [[This]] and [[Target]] and refer to .height or .bottom, etc.
For more info, take a look at this reference page:
Also, look at the screenshot above and find the link for "Insert Variable or Function..." Click that and browse through all the available "hidden" variables. You can select any of them to ensure you get the correct spelling and syntax without having to type them out manually. To get more info and examples for any of them, just search for it in the forum here.