MovieClip.globalToLocal( ) Method | Flash 5 |
convert a point on the main Stage to clip coordinates |
A reference to an object with two properties, x and y, that describe a point on the main Stage of the Player (i.e., on _level0). Both x and y can be any floating-point number.
The globalToLocal( ) method converts the x and y properties of point from coordinates on the main Stage to coordinates in the coordinate space of mc. Note that globalToLocal( ) does not return a new object, it merely modifies the existing x and y values of point. It has no effect when invoked on a main movie object (i.e., _root), because the original and target coordinate spaces are identical.
To use globalToLocal( ), we must first create a so-called point or coordinates object with x and y properties. To do so, create a generic object from the Object class, and add x and y properties to it. For example:
var myPoint = new Object(); myPoint.x = 10; myPoint.y = 20;
The x and y properties of our object are positions on the horizontal and vertical axes of the main Stage, relative to its top-left corner. For example, an x of 10 is 10 pixels to the right of the Stage's left edge, and a y of 20 is 20 pixels below the Stage's top border. With our object created and our x and y properties set, we then pass the object to the globalToLocal( ) method, as in:
myClip_mc.globalToLocal(myPoint);
When globalToLocal( ) is executed, the values of myPoint's x and y properties are transformed to represent a point in the space of myClip_mc, measured from its registration point. By examining the new values of our myPoint object's properties, we answer the question, "Where does the point (x, y) of the main Stage appear in myClip ?" For example:
xInClip = myPoint.x; yInClip = myPoint.y;
The following example calculates the offset from the upper-left corner of the main Stage to the registration point of the current clip:
pt = new Object(); // Create generic object to hold our point pt.x = 0; // Left border of main Stage pt.y = 0; // Top border of main Stage this.globalToLocal(pt); // Convert pt to local coordinates trace("From the current clip, the top-left corner of the main Stage is at "); trace("x: " + pt.x + "y: " + pt.y);