openscale:stackView使用creationPolicy="all"引发的地图feature显示偏移的问题

openscale:stackView使用creationPolicy="all"引发的地图feature显示偏移的问题
在swgis的flex应用框架内对于实时监控和回放界面使用stackview进行布局
 1  < mx:ViewStack  id ="viewstack1"  width ="100%"  height ="100%"  creationPolicy ="all" >
 2               < s:NavigatorContent  label ="实时监控"  width ="100%"  height ="100%"  id ="GisRealView" >
 3                   < s:layout >
 4                       < s:VerticalLayout />
 5                   </ s:layout >
 6                   < ns1:PaneGisRealView  width ="100%"  height ="100%" >
 7                       < ns1:layout >
 8                           < s:VerticalLayout />
 9                       </ ns1:layout >
10                   </ ns1:PaneGisRealView >
11               </ s:NavigatorContent >
12               < s:NavigatorContent  label ="历史回放"  width ="100%"  height ="100%"  id ="GisReplayView" >
13                   < s:layout >
14                       < s:VerticalLayout />
15                   </ s:layout >
16                   < ns1:PaneGisReplayView  height ="100%"  width ="100%" />
17               </ s:NavigatorContent >
18          
19           </ mx:ViewStack >
stackview我通常习惯的设置为 creationPolicy="all" ,因为这样的话stackview在初始化的时候将内部的所有 NavigatorContent都将进行初始化实例,如果不设置 creationPolicy的话,flex将在用户切换NavigatorConent时创建实例(lazy create).
这本是个简单而且方便的设置行为,没想到在第一个view1的地图内显示feature位置都是okay的,但是切换到第二个view2的地图显示feature,发现feature对应的位置在x方向上都做了偏移。
view1.map显示linestring feature:

view2.map显示的linestring feature:


相同的linestring在两个map上显示居然位置产生了偏移,这个问题困扰了一整天和一个晚上,苦思不得其解,采用排斥法,切换view1,view2在stackview中排布次序,居然view2显示就正常了。
然后就联想到了createPolicy这个属性了,一切还原,去除这个属性(默认:lazy create),跑一下居然好了!
奇怪奇怪,没时间具体去研究这个属性在flex里面的实现机制了,就这样吧!

你可能感兴趣的:(openscale:stackView使用creationPolicy="all"引发的地图feature显示偏移的问题)