Изменение размера искрового контроля Flex с индивидуальной кожей - PullRequest
0 голосов
/ 21 июля 2010

Я создал собственную обложку для искрового элемента управления TextInput в Catalyst.

Проблема в том, что в представлении «Дизайн» Flash Builder не удается изменить размер элемента управления TextInput с примененной настраиваемой обложкой.Я хочу иметь возможность регулировать только длину TextInput, сохраняя те же метрики шрифта и пропорции обложки, чтобы я мог использовать одну и ту же обложку для коротких, средних и длинных TextInput.

Аналогично, во время выполнения я хочузакрепить элемент управления справа и / или снизу родительского контейнера, создавая что-то вроде веб-формы многократного размера.

Я создал уродливый, но простой скин TextInput для этого примера:

<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fx="http://ns.adobe.com/mxml/2009">
 <fx:Metadata>[HostComponent(spark.components.TextInput)]</fx:Metadata>
 <s:states>
      <s:State name="normal"/>
      <s:State name="disabled"/>
 </s:states>
 <s:Group x="0" y="0">
      <s:Rect height="31" radiusX="5" width="182" x="0.5" y="0.5">
           <s:stroke>
                <s:SolidColorStroke caps="none" color="#000000" joints="miter" miterLimit="4" weight="1"/>
           </s:stroke>
           <s:fill>
                <s:SolidColor color="#FF90CD"/>
           </s:fill>
      </s:Rect>
      <s:RichEditableText color="#2B4381" fontFamily="Arial" fontSize="12" tabStops="S0 S50 S100" x="11" y="11" width="161" heightInLines="1" id="textDisplay"/>
 </s:Group>
</s:Skin>

Моей первой мыслью было то, что это делается с использованием 9-секционирования, но не смог найти ни одного примера.

Заранее спасибо, Петар

1 Ответ

0 голосов
/ 21 июля 2010

Вам нужно изменить свое позиционирование / размер с явного на относительное к краям, что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fx="http://ns.adobe.com/mxml/2009">
 <fx:Metadata>[HostComponent(spark.components.TextInput)]</fx:Metadata>
 <s:states>
      <s:State name="normal"/>
      <s:State name="disabled"/>
 </s:states>
 <s:Rect left="0" right="0" top="0" bottom="0">
      <s:stroke>
           <s:SolidColorStroke caps="none" color="#000000" joints="miter" miterLimit="4" weight="1"/>
      </s:stroke>
      <s:fill>
           <s:SolidColor color="#FF90CD"/>
      </s:fill>
 </s:Rect>
 <s:RichEditableText left="11" right="11" top="11" bottom="11" color="#2B4381" fontFamily="Arial" fontSize="12" tabStops="S0 S50 S100" heightInLines="1" id="textDisplay"/>
</s:Skin>

(Я не компилировал и не пробовал это, только отредактировал в качестве примера.)

...