User Guide
1008 Chapter 2: ActionScript Language Reference
Instead of using with(), you can use direct paths. If you find that paths are long and
cumbersome to type, you can create a local variable and store the path in the variable, which you
can then reuse in your code, as shown in the following ActionScript:
var shortcut = this._parent._parent.name_txt;
shortcut.text = "Hank";
shortcut.autoSize = true;
For more information on best practices in writing code and code readability, see Chapter 3,
“Avoiding the with statement,” on page 87 of Using ActionScript in Flash.
Example
The following example sets the _x and _y properties of the someOther_mc instance, and then
instructs
someOther_mc to go to Frame 3 and stop.
with (someOther_mc) {
_x = 50;
_y = 100;
gotoAndStop(3);
}
The following code snippet shows how to write the preceding code without using a with
statement.
someOther_mc._x = 50;
someOther_mc._y = 100;
someOther_mc.gotoAndStop(3);
The with statement is useful for accessing multiple items in a scope chain list simultaneously. In
the following example, the built-in
Math object is placed at the front of the scope chain. Setting
Math as a default object resolves the identifiers cos, sin, and PI to Math.cos, Math.sin, and
Math.PI, respectively. The identifiers a, x, y, and r are not methods or properties of the Math
object, but because they exist in the object activation scope of the function
polar(), they resolve
to the corresponding local variables.
function polar(r:Number):Void {
var a:Number, x:Number, y:Number;
with (Math) {
a = PI*pow(r, 2);
x = r*cos(PI);
y = r*sin(PI/2);
}
trace("area = "+a);
trace("x = "+x);
trace("y = "+y);
}
polar(3);
The following result is displayed in the Output panel.
area = 28.2743338823081
x = -3
y = 3
See also
tellTarget