Я хотел бы создать пользовательский компонент Button с тремя метками: слева, по центру и по правому краю.Я не могу просто использовать свойство выравнивания меток, потому что хочу использовать все 3 метки одновременно.
Я знаком с созданием пользовательских компонентов, но никогда не пытался создать такой, какэто раньше ...
Вот что у меня есть:
<?xml version="1.0" encoding="utf-8"?>
<s:Button
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
private var labelContentL:String;
private var labelContentC:String;
private var labelContentR:String;
public function set labelL(value:String):void
{
labelContentL = value;
}
public function set labelC(value:String):void
{
labelContentC = value;
}
public function set labelR(value:String):void
{
labelContentR = value;
}
public function get labelL():String
{
return labelContentL;
}
public function get labelC():String
{
return labelContentC;
}
public function get labelR():String
{
return labelContentR;
}
]]>
</fx:Script>
<s:Label id="l" width="100%" text="{labelContentL}" textAlign="left" paddingLeft="10" />
<s:Label id="c" width="100%" text="{labelContentC}" textAlign="center" />
<s:Label id="r" width="100%" text="{labelContentR}" textAlign="right" paddingRight="10" />
</s:Button>
Ярлыки не изменятся после создания кнопки, поэтому я не беспокоюсь по поводу пропавших без вести [Bindable]
metadata.
Я застрял прямо сейчас, получая следующую ошибку компилятора:
Несколько значений инициализатора для свойства по умолчанию, 'label', типа 'String'.
... для каждой из 3 <s:Label>
строк.
Исходя из этого ответа к аналогичному вопросу, я попытался добавить label=""
к своему <s:Button>
декларация, но это просто добавляет еще одну ошибку.
Как мне это исправить?