Я играл с разметкой простых групп внутри групп во 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>
внутренний прямоугольник не центрирован по вертикали во внешнем.