apache-flex - 如何使用 vslider 作为列表的滚动条?

标签 apache-flex flex4 flash-builder flexbuilder

如何使用 vslider 作为列表的滚动条?我知道了,但无法从这里弄明白:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    
           xmlns:mx="library://ns.adobe.com/flex/mx"     
           xmlns:s="library://ns.adobe.com/flex/spark"  height="100%" width="100%">

<s:VSlider id="slider" minimum="0" maximum="{listy.height}" liveDragging="true"/>

<s:List id="listy" width="50%" height="100">
    <s:layout>
        <s:VerticalLayout id="vLayout" verticalScrollPosition="{slider.value}" />
    </s:layout>

    <mx:ArrayCollection>
        <fx:String>Flash</fx:String> 
        <fx:String>Director</fx:String> 
        <fx:String>Dreamweaver</fx:String> 
        <fx:String>ColdFusion</fx:String> 
        <fx:String>Flash</fx:String> 
        <fx:String>Director</fx:String> 
        <fx:String>Dreamweaver</fx:String> 
        <fx:String>ColdFusion</fx:String> 
        <fx:String>Flash</fx:String> 
        <fx:String>Director</fx:String> 
        <fx:String>Dreamweaver</fx:String> 
        <fx:String>ColdFusion</fx:String> 
    </mx:ArrayCollection>
</s:List>
</s:Application>

编辑:使用下面 Nate 的建议,我现在已经开始工作了,但它同时显示了 vslider 和默认滚动条。如何隐藏默认滚动条?我尝试设置 verticalScrollPolicy="off"但这没有用。谢谢

最佳答案

这是完全可能的,我的目标是证明它!开个玩笑吧,这里只是使用一些简单的绑定(bind),你已经非常接近了!

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    
               xmlns:mx="library://ns.adobe.com/flex/mx"     
               xmlns:s="library://ns.adobe.com/flex/spark"  height="100%" width="100%">

    <s:Group>
        <s:layout>
            <s:HorizontalLayout/>
        </s:layout>

        <s:List id="listy" width="50%" height="100" 
                change="slider.value=listy.layout.verticalScrollPosition" creationComplete="
                listy.dataGroup.addEventListener(MouseEvent.MOUSE_WHEEL, function():void{
                    slider.value=listy.layout.verticalScrollPosition}
                );">
            <s:layout>
                <s:VerticalLayout id="vLayout" verticalScrollPosition="{slider.value}" />
            </s:layout>

            <mx:ArrayCollection>
                <fx:String>Flash</fx:String> 
                <fx:String>Director</fx:String> 
                <fx:String>Dreamweaver</fx:String> 
                <fx:String>ColdFusion</fx:String> 
                <fx:String>Flash</fx:String> 
                <fx:String>Director</fx:String> 
                <fx:String>Dreamweaver</fx:String> 
                <fx:String>ColdFusion</fx:String> 
                <fx:String>Flash</fx:String> 
                <fx:String>Director</fx:String> 
                <fx:String>Dreamweaver</fx:String> 
                <fx:String>ColdFusion</fx:String> 
            </mx:ArrayCollection>
        </s:List>

        <s:VSlider id="slider" height="{listy.height}" 
                   minimum="0" maximum="{listy.dataGroup.contentHeight - listy.height}" 
                   showDataTip="false" scaleY="-1" liveDragging="true"/> 

    </s:Group>
</s:Application>

如果你不明白它的方式和原因,请联系我 :)

关于apache-flex - 如何使用 vslider 作为列表的滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6802905/

相关文章:

apache-flex - AS3 Flash 编译 - 从编译中排除函数

css - 什么是 flex 中的 Css "display:none"?

apache-flex - 在 Spark 按钮皮肤上添加图标

apache-flex - 我如何将一个 MXML 文件嵌入另一个 MXML 文件?

air - flash builder - export build 正在生成 airi 文件而不是 air

apache-flex - 使用 ANT 查找工作区位置

database - 将远程 PHP 服务与 Flex (Flash Builder) AIR 应用程序结合使用?

actionscript-3 - 我可以将 FlexMobile 项目设为纯 as3 吗?

list - 如何在Flex 4的Spark List控件中处理click事件

loops - Adobe Flex 中的循环