html浮动样式位置,浮动HTML样式的Flex容器

本文介绍了解决VGroup中动态生成的标签如何保持宽度限制,避免延伸容器的问题。通过计算字符数创建HGroup来包裹标签,实现自定义样式和点击事件,同时保持美观和性能。作者分享了针对多标签的高效解决方案和代码示例。
摘要由CSDN通过智能技术生成

我遇到的问题是,我有一个VGroup中的多个标签,需要它们包装,而不是延伸过去的容器设置宽度。我试图将关键字整合到一段动态的文本中。我无法使用mx:Text,因为我需要每个单词都是它自己的组件,允许自定义样式和鼠标点击,即使该单词是关键字也是如此。此外,标签最大线路解决方案将无法正常工作,因为我正在处理VGroup中的多个标签,并且VGroup需要包装其子标签而不是标签标签。我也无法使用TileGroup,因为它看起来不正确地将一个段落分解成一个表,查看每个单词在其自己的列/行中的组件。

我使用的解决方案是计算生成的标签中的每个字符并将其添加到变量以确定何时需要创建一个新的HGroup来保存标签并坐在VGroup中。我不得不这样做,因为我不能确定标签宽度,直到它呈现,因为它是动态生成的。这是无法完成的,因为它的渲染点对于我来说已经太晚了,无法移动所有的东西,因为用户可以看到所有这一切发生,这绝对不是所期望的效果。

下面是我用来解决这个问题的代码柜面任何人运行到这个问题:

public static function setKeyWords(someText:String, theGroup:Group, theDictionary:Array, theView:Object):void {

theGroup.removeAllElements();

var textArray:Array = someText.split(' ');

var theCount:int = 0;

var theHGroup:HGroup = new HGroup();

var breakNum:int = 40;

theHGroup.percentWidth = 100;

for(var i:int = 0, l:int = textArray.length; i < l; i++) {

theCount += textArray[i].toString().length;

if(theCount >= breakNum) {

theGroup.addElement(theHGroup);

theHGroup = new HGroup();

theHGroup.percentWidth = 100;

theCount = 0;

}

if(checkForWord(theDictionary, textArray[i].toString())) {

theCount += 1;

var theLink:Label = new Label();

theLink.text = textArray[i].toString();

theLink.setStyle("color", "0xFFFF00");

theLink.setStyle("fontWeight", "bold");

theLink.maxWidth = 580;

//theLink.includeInLayout = false;

var tmpDescrip:String = theDescription;

theLink.addEventListener(MouseEvent.CLICK, function(evt:MouseEvent):void {

showToolTip(tmpDescrip, theView, 'keywords');

});

theHGroup.addElement(theLink);

} else {

theCount += 1;

var someLabel:Label = new Label();

someLabel.maxWidth = 580;

someLabel.text = textArray[i].toString();

//someLabel.includeInLayout = false;

theHGroup.addElement(someLabel);

}

}

if(theCount > 0)

theGroup.addElement(theHGroup);

}

这可能不是这样做的最effecient的方式,但它的工作和需要一点时间来执行在我正在瞄准的Iphone上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值