灵活扩展 - 排除一些孩子?

时间:2011-06-15 17:21:34

标签: flex map scaling

我正在尝试在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包含一些标签等。这不应该调整大小?

2 个答案:

答案 0 :(得分:2)

您可以为具有反向值的子项取消缩放 - 例如,如果将缩放2.0应用于父级,则对这些子级应用1 / 2.0 = 0.5缩放,并且它们的大小将保持不变。

答案 1 :(得分:2)

您应该将地图应用程序分成多个图层,每个图层都包含一组特定的项目。例如,底层仅为地图,一层为文本,一层为POI ...因此,您只需要在地图图层上缩放并调整其他图层上项目的位置。如果没有必要,这种方法还可以隐藏一些图层。