我正在尝试将UIScrollbar组件的实例附加到某个类的实例内的动态文本字段,该类的实例是在加载某些XML之后生成的。 滚动条组件已正确连接,因为滑块的大小根据文本字段中内容的数量而变化,但是它不会滚动。
这是代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| function xmlLoaded(evt:Event):void
{
//do some stuff
for(var i:int = 0; i < numProfiles; i++)
{
var thisProfile:profile = new profile();
thisProfile.alpha = 0;
thisProfile.x = 0;
thisProfile.y = 0;
thisProfile.name ="profile" + i;
profilecontainer.addChild(thisProfile);
thisProfile.profiletextholder.profilename.htmlText = profiles[i].attribute("name");
thisProfile.profiletextholder.profiletext.htmlText = profiles[i].profiletext;
//add scroll bar
var vScrollBar:UIScrollBar = new UIScrollBar();
vScrollBar.direction = ScrollBarDirection.VERTICAL;
vScrollBar.move(thisProfile.profiletextholder.profiletext.x + thisProfile.profiletextholder.profiletext.width, thisProfile.profiletextholder.profiletext.y);
vScrollBar.height = thisProfile.profiletextholder.profiletext.height;
vScrollBar.scrollTarget = thisProfile.profiletextholder.profiletext;
vScrollBar.name ="scrollbar";
vScrollBar.update();
vScrollBar.visible = (thisProfile.profiletextholder.profiletext.maxScrollV > 1);
thisProfile.profiletextholder.addChild(vScrollBar);
//do some more stuff
}
} |
我还用movieclip / class本身中的UIScrollBar组件进行了尝试,但仍然无法正常工作。 有任何想法吗?
一旦通过类似于以下内容的单独函数初始化了文本字段,就可以尝试添加滚动条:
1 2 3 4 5 6 7 8 9
| private function assignScrollBar(tf:TextField, sb:UIScrollBar):void {
trace("assigning scrollbar");
sb.move(tf.x + tf.width, tf.y);
sb.setSize(15, tf.height);
sb.direction = ScrollBarDirection.VERTICAL;
sb.scrollTarget = tf;
addChild(sb);
sb.update();
} |
这就是我目前的做法。
在第一个示例中,您是否尝试过将
vScrollBar.update();
之后的声明
addChild(vScollbar);
?
您是否尝试过将UI滚动条放到舞台上,在设计时将其绑定到文本字段,然后在加载事件期间调用update()?
过去,我在运行时动态创建UIScrollbars时有一些有趣的经验。