         if (!layoutTarget)
             return;
 
-        updateActualValues(unscaledWidth, unscaledHeight);
-
-        var xPos:Number = 0;
-        var yPos:Number = 0;
+        calculateDisplayParameters(unscaledWidth, unscaledHeight);
+        
+        // Upper right hand corner of first (visibleStartIndex) tile/cell
+        var xPos:Number = visibleStartX;  // 0 if useVirtualLayout=false
+        var yPos:Number = visibleStartY;  // ...
+                
+        // Use MajorDelta when moving along the major axis
+        var xMajorDelta:Number;
+        var yMajorDelta:Number;
+
+        // Use MinorDelta when moving along the minor axis
+        var xMinorDelta:Number;
+        var yMinorDelta:Number;
 
         // Use counter and counterLimit to track when to move along the minor axis
         var counter:int = 0;
         var counterLimit:int;
-
-        // Use MajorDelta when moving along the major axis
-        var xMajorDelta:Number;
-        var yMajorDelta:Number;
-
-        // Use MinorDelta when moving along the minor axis
-        var xMinorDelta:Number;
-        var yMinorDelta:Number;
 
         // Setup counterLimit and deltas based on orientation
         if (orientation == TileOrientation.ROWS)

                                    Math.round(_rowCount * (_rowHeight + _verticalGap) - _verticalGap));

        // Reset the cache
        _tileWidthCached = _tileHeightCached = NaN;
        _numElementsCached = -1;

        // If actual values have chnaged, notify listeners
        dispatchEventsForActualValueChanges();

    
    /**
     *  @private
     *  Returns true, if the dimensions (colCount1, rowCount1) are more square than (colCount2, rowCount2).
     *  Squareness is the difference between width and height of a tile layout
     *  with the specified number of columns and rows.
     */
