如何在3中添加自定义组件的滚动条?

时间:2014-04-15 09:11:35

标签: actionscript-3 flex flex4

我有一个带有一些属性的自定义组件。现在我想为这个组件添加滚动条。我对此一无所知。我想在ActionScript文件中添加此滚动条。不在MXML文件中。任何人都可以帮助我吗?

更新

<s:Scroller width="100%" height="100%">
    <s:Group id="contentGroup" left="0" right="0" top="0" bottom="0" minWidth="0" minHeight="0">
        <s:layout>
            <s:VerticalLayout paddingTop="25"  paddingLeft="25" paddingRight="15"/>
        </s:layout>
    </s:Group>

</s:Scroller>

2 个答案:

答案 0 :(得分:1)

我建议在自定义组件的MXML外观中添加滚动条。 这是来自Adobe的滚动条组件的tutorial

答案 1 :(得分:0)

[更新回答]

通过设置contentGroup的left="0" right="0" top="0" bottom="0" minWidth="0"属性,您始终保持该组与滚动条的大小相同。直接影响是您不需要滚动条。

如果您只想要一个垂直滚动条,您可以添加left="0" right="0"属性,内容组宽度永远不会超过滚动条,但由于高度会根据孩子的增长而产生垂直滚动条。您可以对底部和顶部执行相同操作以仅创建水平滚动条。 如果您同时需要它们,请删除任何大小指示属性。这样,contentGroups childelements将调整大小,一旦它变大,滚动器就会相应地显示滚动条。

[问题前的答案已更改]

如果您使用SkinnableComponent我同意hidarikani。 但是因为你想在动作脚本中添加滚动条,我猜它不是一个SkinnableComponent。

诀窍是你需要在滚动条内的组内添加所有子元素。

var scroller:Scroller = new Scroller();
var content:Group = new Group();
scroller.addElement(content);
this.addElement(scroller);

#insert elements that need to be inside the scroller to the content group.
content.addElement(visualElement1);
content.addElement(visualElement2);

内容组现在可以根据他的孩子调整大小,并且需要使用大小指定滚动条,以便它可以根据内容组的大小创建滚动条。