     }
 
     //----------------------------------
+    //  densityScale
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the densityScale property 
+     */
+    private var _densityScale:Number = NaN;
+    
+    /**
+     *  The density scale factor of the application.
+     * 
+     *  When density scaling is enabled, Flex applies a scale factor based on
+     *  the application author density and the density of the current device
+     *  that Flex is running on. 
+     * 
+     *  Returns 1.0 when there is no scaling.
+     * 
+     *  @see spark.components.Application#authorDensity
+     *  @see mx.core.DensityUtil
+     */
+    public function get densityScale():Number
+    {
+        if (isNaN(_densityScale))
+        {    
+            var authorDensity:String = info()["authorDensity"];
+            var deviceDensity:String = DensityUtil.screenDPIToDeviceDensity(flash.system.Capabilities.screenDPI);
+            _densityScale = DensityUtil.getDensityScale(authorDensity, deviceDensity);
+            if (isNaN(_densityScale))
+                _densityScale = 1;
+        }
+
+        return _densityScale;
+    }
+    
+    //----------------------------------
     //  document
     //----------------------------------
 

            Loader(parent).contentLoaderInfo.applicationDomain :
            info()["currentDomain"] as ApplicationDomain;

        // Initialize the preloader.
        preloader.initialize(
            usePreloader,

            preloaderBackgroundAlpha,
            preloaderBackgroundImage,
            preloaderBackgroundSize,
            isStageRoot ? screen.width : loaderInfo.width,
            isStageRoot ? screen.height : loaderInfo.height,
            null,
            null,
            rslItemList,
            resourceModuleURLs,
            domain);
    }

    //--------------------------------------------------------------------------
    //
