гибкий скроллер режет содержимое - PullRequest
0 голосов
/ 16 июня 2011

есть небольшое гибкое приложение, в котором контент можно масштабировать. прежде всего некоторый код

<s:Scroller  verticalScrollPolicy="on"  width="100%" height="100%">



<s:Group scaleX="{breite}" scaleY="{hoehe}" 

         id="mapView" > <!-- zum zoomen -->

    <s:Group horizontalCenter="0"  id="kartePanel"  verticalCenter="0">
    <images:karte  height="630" width="430"   />


        <components:akwOnMap data="{biblis}" verticalCenter="{biblis.y}" horizontalCenter="{biblis.x}" 
                             scaleY="{negate}" scaleX="{negate}" toolTip="{biblis.name}"/>



        <components:akwOnMap data="{akw2}" verticalCenter="{akw2.y}" horizontalCenter="{akw2.x}" 
                             scaleY="{negate}" scaleX="{negate}" toolTip="{akw2.name}"/>

            <components:akwView scaleX="{negate}" data="{akw2}" scaleY="{negate}" verticalCenter="20" horizontalCenter="{80}" >
        </components:akwView> 
    </s:Group>
</s:Group>
</s:Scroller>

Увеличение просто отлично работает, изменяя значение с 1 до 3 с помощью ползунка Середина увеличения - центр контейнера (карта).

Моя проблема: при масштабировании скроллер обрезает часть групп. он вылетает из окна?!

1 Ответ

1 голос
/ 18 июня 2011
private function checkScrolling():void

{


var imgWidth:Number = mapView.width * mapView.scaleX;
    var imgHeight:Number = mapView.height * mapView.scaleY;

if (mapGroup.contentWidth < imgWidth ||
    mapGroup.contentHeight < imgHeight)
{
    var excessW:Number = imgWidth - mapGroup.contentWidth;
    var excessH:Number = imgHeight - mapGroup.contentHeight;
    mapGroup.setContentSize(imgWidth, imgHeight);
    /*
    if (scroller.horizontalScrollBar)
    {
        scroller.horizontalScrollBar.minimum = -excessW;
        scroller.horizontalScrollBar.maximum = excessW;
        mapGroup.horizontalScrollPosition = 0; 
    }
    */
    if (scroller.verticalScrollBar)
    {
        scroller.verticalScrollBar.minimum = -excessH;
        scroller.verticalScrollBar.maximum = excessH;
        mapGroup.verticalScrollPosition = 0;
    }

это просто отлично работает.

...