我在Flex中有一个具有指定宽度的Spark水平组(s:HGroup) 但是该组外的所有标签都被隐藏(在100像素之后)。
<s:HGroup width="100">
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
</s:HGroup>
(这是一个例子,我在Actionscript中向HGroup添加元素,不知道有多少)
那么当出现溢出时,如何将HGroup中的元素包装到新行?
答案 0 :(得分:1)
简短的回答是你不能。 HGroup水平放置元素。
我想你会想要使用一个TileLayout
的小组<s:Group width="100">
<s:layout>
<s:TileLayout />
</s:layout>
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
<s:Label text="Hi" />
<s:Label text="Hello" />
</s:Group>
如果磁贴布局不起作用,则必须创建自己的自定义布局类。
答案 1 :(得分:-1)
我已经创建了一个解决方案,可能不是最好的解决方案,但它对我有用。
关键是我希望有人可以点击标签并执行功能。
现在我有了这个:
<mx:Text id="box" width="100"></mx:Text>
在Actionscript中:
box.htmlText = box.htmlText + "<a href=\"event:hi\">Hi</a>";
box.htmlText = box.htmlText + "<a href=\"event:hello\">Hello</a>";
//etc (actually I've a for loop parsing some XML data)
box.addEventListener(TextEvent.LINK, executeFunction);
private function executeFunction(linkEvent:TextEvent):void {
Alert.show(linkEvent.text); // will show a alert box with 'hi' or 'hello'
}
MX文本框内的文本完全保持在100像素范围内,尽可能多的文本在一条水平线上。