flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Moore (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FLEX-34653) Overriding RuntimeDPIProvider causes incorrect application scalling
Date Tue, 02 Dec 2014 16:58:13 GMT
Jason Moore created FLEX-34653:
----------------------------------

             Summary: Overriding RuntimeDPIProvider causes incorrect application scalling
                 Key: FLEX-34653
                 URL: https://issues.apache.org/jira/browse/FLEX-34653
             Project: Apache Flex
          Issue Type: Bug
          Components: Layout - General, Skinning
    Affects Versions: Apache Flex 4.13.0
         Environment: Windows ( Possible Mac - Not checked ).
            Reporter: Jason Moore


The issue occurs when using automatic scaling and setting the application DPI and overriding
the runtimeDPIProvider to set the runtimeDPI where it is incorrectly returned from the OS
( On desktop devices for instance ).

If the two values match ie 1:1 scaling, there is no issue. But if they differ then the application
content is scalled correctly , but the stage size is also scaled, incorrect. This leads to
the application being clipped when scaling up and excess space when scaling down.. See code
excepts to recreate...
{code:title=ScaleIssue.mxml|borderStyle=solid}
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
					   xmlns:s="library://ns.adobe.com/flex/spark" 
					   xmlns:mx="library://ns.adobe.com/flex/mx"
					   applicationDPI="160"
					   runtimeDPIProvider="myRuntimeDPIProvider">
	
		<s:Label id="LeftMarker" left="0" verticalCenter="0" text="&lt;--- LEFT" fontSize="24"/>

		<s:Label id="MiddleMarker" horizontalCenter="0" verticalCenter="0" text="&gt; &gt;
&gt; MIDDLE &lt; &lt; &lt;" fontSize="24"/>

		<s:Label id="RightMarker" right="0" verticalCenter="0" text="RIGHT ---&gt;" fontSize="24"/>
							 
</s:WindowedApplication>
{code}

{code:title=myRuntimeDPIProvider.as|borderStyle=solid}
package 
{
	
	import mx.core.DPIClassification;
	import mx.core.RuntimeDPIProvider;
	
	public class myRuntimeDPIProvider extends RuntimeDPIProvider
	{
				
		/**
		 * Overrride getter function so we can set the dpi manually when running on desktop device
		 * This would normally be a bit more sophisticated... 
		 * 
		 * @return 
		 * 
		 */		
		override public function get runtimeDPI():Number
		{			
			return DPIClassification.DPI_240;
		}
		
	}
}
{code}

You should see the text labels pointing to the left and right screen edges.. but instead the
right hand label is off screen.

Hope that makes sense.

J :)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message