2012-01-15 2 views
2
<?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"  
      > 
    <fx:Style>  
     @namespace s "library://ns.adobe.com/flex/spark"; 
     @namespace mx "library://ns.adobe.com/flex/mx"; 
     s|VGroup { 
      gap: 150; 
      left: 30; 
     } 
    </fx:Style> 
    <s:VGroup> 
     <s:Label text="text1" /> 
     <s:Label text="text1" /> 
    </s:VGroup> 
</s:Application> 

VGroup составляет 30 пикселей слева, как и предполагалось (это мое доказательство того, что используется стиль) Но она игнорирует данный пробел. Когда я пишу 'gap = "150"' непосредственно в VGroup-Element, он работает. Так почему же это игнорируется при переходе на css?Flex 4.6 CSS VGroup «пробел» игнорируется

благодарит вас за любые намеки.

у.е., Markus

ответ

2

Поскольку gap является 'собственностью' класса VGroup, а не стиль. Это свойство является лишь оберткой для свойства VerticalLayout#gap.

Если вы используете FlashBuilder, вы можете увидеть разницу между ними в списке предложений. Свойство представлено как зеленый круг. Стиль показан как синяя форма блока «Тетрис».

РедактироватьLeft также является собственностью, но при этом применяется. Причина этого в том, что в старых версиях Flex SDK baseline, top, bottom, left, right, horizontalCenter и verticalCenter, где реализованы стили. Поэтому причина, по которой вы все равно можете использовать их как таковую, - это обратная совместимость.

+0

Спасибо! Это приводит меня к другому вопросу: разрыв - это свойство своего стиля, потому что оно влияет на визуальное впечатление и не имеет ничего общего с группировкой данных. Итак, если я хочу строго разделить данные + логику и визуальную конфигурацию, с другой стороны, написав файл css - как я могу справиться с ним? Если vgroup были skinnable, я мог бы написать skinclass и ввести собственное значение css и прочитать его значение, чтобы установить его вручную с помощью actionscript в skinclass. –

+0

@MarkusRossler Подумайте еще немного: VGroup сама по себе определяет вертикальную компоновку, которую можно было бы рассматривать как стиль. Вы не можете делать _everything_ через CSS, и я лично считаю, что ваш файл CSS станет нечитаемым, если можно. Идея архитектуры Spark заключается в том, что вы создаете классы скинов, которые содержат макет и графическую информацию, которую вы можете назначить представлению через свой стиль 'skinClass'. – RIAstar

+0

Еще раз спасибо! Благодаря этому я разрешу это с помощью BasicLayout, разместив каждую метку на css. Я лично не понимаю, что граница, которая предусматривает, что должно быть написано с помощью CSS, и какие свойства не должны. Но мы не должны обсуждать это здесь. :-) Еще раз спасибо! –