Я использую Flex 4 с компонентами Spark для создания мобильного приложения, и у меня есть HGroup, которую я использую для хранения всех моих элементов. Когда экран загружается, он втягивает небольшой объем текста, который будет отображаться, и просматривает все слова, чтобы увидеть, является ли какое-либо из них ключевым словом. Пока он зацикливается, я помещаю каждое слово в отдельный элемент метки, и если слово является ключевым словом, оно меняет несколько стилей и добавляет событие щелчка, чтобы показать описание слова.
Все работает нормально, но когда все добавляется в HGroup, остается только одна строка, и большая часть текста полностью обрезается, потому что она не переносит содержимое.
Мой вопрос: есть ли способ установить или расширить HGroup, чтобы разрешить перенос содержимого на его дочерние элементы?
Ниже приведены некоторые фрагменты кода того, что у меня есть:
Контейнеры MXML:
<s:VGroup id="answerData" width="580" height="700" horizontalAlign="center" paddingTop="5">
<s:HGroup id="theLabel" color="white" width="580" fontSize="25" paddingBottom="20" />
<s:HGroup id="theText" color="white" width="580" fontSize="25" maxWidth="580" />
</s:VGroup>
КАК создавать этикетки:
public static function setKeyWords(someText:String, theGroup:Group, theDictionary:Array, theView:Object):void {
theGroup.removeAllElements();
var textArray:Array = someText.split(' ');
for(var i:int = 0, l:int = textArray.length; i < l; i++) {
if(checkForWord(theDictionary, textArray[i].toString())) {
var theLink:Label = new Label();
theLink.text = textArray[i].toString();
theLink.setStyle("color", "0xFFFF00");
theLink.setStyle("fontWeight", "bold");
theLink.maxWidth = 580;
var tmpDescrip:String = theDescription;
theLink.addEventListener(MouseEvent.CLICK, function(evt:MouseEvent):void {
showToolTip(tmpDescrip, theView);
});
theGroup.addElement(theLink);
} else {
var someLabel:Label = new Label();
someLabel.maxWidth = 580;
someLabel.text = textArray[i].toString();
theGroup.addElement(someLabel);
}
}
}