VerticalCenter не работает должным образом? - PullRequest
0 голосов
/ 23 апреля 2011

Я играл с разметкой простых групп внутри групп во Flex, и мне кажется, что я могу создавать сценарии, в которых вертикальный центр не справляется с задачей центрирования.Если вы запустите фрагмент ниже и переместите HSlider влево, вы должны заметить, что алмаз не всегда вертикально центрирован относительно Rect.Это особенно очевидно, когда вы получаете, что ромб немного больше прямоугольника - в этом случае нижний наконечник торчит, а верхний - нет.

Я делаю что-то ужасно неправильно, или я просто бьюсь против разрешения пикселей?Или что еще?

будет рад любому совету!

спасибо.

POST EDIT: добавление еще одного примера, еще более простого, который показывает это снова.Мне кажется разрешение в пикселях ...

---- main.mxml ---

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">

    <s:Group height="{hs.value}" width="80" verticalCenter="0" horizontalCenter="0">
        <s:Rect height="100%" width="100%">
            <s:fill>
                <s:SolidColor color="0x787878"/>
            </s:fill>
        </s:Rect>
        <local:diamond verticalCenter="0" height="100%"/>
    </s:Group>
    <s:HSlider maximum="40" value="30" id="hs"/>
</s:Application>

---- diamond.mxml ------

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx">

    <s:Group height="100%" verticalCenter="0" scaleY="0.70">
        <s:Path verticalCenter="0"
                data="M 7.847 19.31 
                L 7.842 19.312 
                L 0 11.47 
                L 11.468 0 
                L 15.107 3.64 
                L 15.112 3.638 
                L 22.94 11.467 
                L 11.472 22.935 
                L 7.847 19.31 Z" >
            <s:fill>
                <s:LinearGradient rotation="90" scaleX="49.3475" x="11.47" y="-0.308">
                    <s:GradientEntry color="#FFD500" ratio="0"/>
                    <s:GradientEntry color="#F5A106" ratio="1"/>
                </s:LinearGradient>
            </s:fill>
        </s:Path>
    </s:Group>
</s:Group>

-------------------------- НОВЫЙ ПРИМЕР ----------------------

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="400">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:Group horizontalCenter="0" verticalCenter="0" width="80" height="40">
        <s:Rect width="100%" height="100%">
            <s:fill>
                <s:SolidColor color="0xdddddd"/>                
            </s:fill>
        </s:Rect>

        <s:Rect height="33" width="80" verticalCenter="0">
            <s:fill>
                <s:SolidColor color="0xFFFF99"/>
            </s:fill>
        </s:Rect>
    </s:Group>
</s:Application>

внутренний прямоугольник не центрирован по вертикали во внешнем.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2011

В последнем примере у вас есть группа высотой 40 пикселей, внутри которой находится прямоугольник высотой 33 пикселя, что составляет 7 пикселей между ними, которые нужно разделить на 2 (3,5) для верхней и нижней частей.

Flex, не нравится Flash, округляет all позиционное число для лучшей читаемости текста и размещения. Если бы вы изменили высоту внутреннего прямоугольника на 32, он бы идеально отцентрировался.

По сути, не использовать дробные позиции .

0 голосов
/ 23 апреля 2011

В этом утверждении

<testVerticalCenter:diamond verticalCenter="0" height="100%"/>

Как вы определяете пространство имен testVerticalCenter?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...