我正在尝试在flex中构建一个webmap应用程序。 对于这些人来说,有一个代表地图的fxg文件。 它在一个 此外,还有一些元素,如POI,文本等。 我使用scaleX和scaleY缩放,这对于地图来说效果很好。
但问题是:所有孩子也放大了。我不想要这个。他们应该在地图上保持相同的位置和相同的大小。
继承了一些代码 作为函数
<fx:Script>
<![CDATA[
import mx.skins.Border;
[Bindable]
public var hoehe:Number = 1;
[Bindable]
public var breite:Number = 1;
protected function zoom_changeHandler(event:Event):void
{
hoehe = zoom.value;
breite = zoom.value;
}
]]>
</fx:Script>
和
<s:Scroller width="100%" height="100%" baseline="10">
<s:Group scaleX="{breite}" scaleY="{hoehe}" id="mapView" > <!-- zum zoomen -->
<s:Group horizontalCenter="0" > <!-- Enthält alle Objekte -->
<images:karte id="kartePanel" height="630" width="430" />
<images:akw id="akw1" scaleX="0.2" scaleY="0.2" top="158" left="190" />
<components:akwView x="154" y="131" resizeMode="scale">
</components:akwView>
</s:Group>
</s:Group>
</s:Scroller>
componentsLakwView包含一些标签等。这不应该调整大小?
答案 0 :(得分:2)
您可以为具有反向值的子项取消缩放 - 例如,如果将缩放2.0应用于父级,则对这些子级应用1 / 2.0 = 0.5缩放,并且它们的大小将保持不变。
答案 1 :(得分:2)
您应该将地图应用程序分成多个图层,每个图层都包含一组特定的项目。例如,底层仅为地图,一层为文本,一层为POI ...因此,您只需要在地图图层上缩放并调整其他图层上项目的位置。如果没有必要,这种方法还可以隐藏一些图层。