2010-01-11 94 views
1

我有一个自定义滚动条来控制一个组作为它的视口。自动隐藏自定义滚动条Flex 4

<s:HGroup> 
     <s:Group width="520" height="380" clipAndEnableScrolling="true" id="descriptionBox" > 
      <s:RichText text="Test Test Test Test Test Test Test " 
         width="490" textAlign="justify" fontFamily="Arial" fontSize="12" color="#999999" /> 
     </s:Group> 
     <s:VScrollBar viewport="{descriptionBox}" 
       left="{descriptionBox.x + descriptionBox.width + 10}" 
       top="10" 
       height="{descriptionBox.height}" 
       fixedThumbSize="true" 
       skinClass="VScrollBarSkin"/> 
    </s:HGroup> 

我要作出这样的滚动条自动隐藏,当该组的内容不超过视图大小,任何想法如何做到这一点一般(意思是我不想依赖视口组内的部件上) ?

谢谢。

Flex中

回答

1

该滚轮部件正是如此:

  • Autohides /示出了在为RenderingMode。GroupBase(集团或DATAGROUP,其IViewports)
  • 允许自定义通过皮肤滚动条水平和垂直滚动

这里有一个会做你描述代码:

<s:Application 
    xmlns="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx"> 

    <Script> 
     <![CDATA[ 

      private var times:int = 400; 

      private function updateText(type:String):void 
      { 
       var newText:String = ""; 
       var i:int = 0; 
       var n:int = times; 
       for (i; i < n; i++) 
       { 
        newText += "Test "; 
       } 
       var text:String = richText.text; 
       if (type == "add") 
        text += newText; 
       else 
        text = newText.replace(text) + ''; 
       richText.text = text; 
      } 

     ]]> 
    </Script> 
    <s:HGroup> 
     <s:Button label="+" click="updateText('add')"/> 
     <s:Button label="-" click="updateText('remove')"/> 
    </s:HGroup> 
    <s:Scroller width="520" height="380" id="scroller" minViewportInset="1" focusEnabled="false"> 
     <s:Group clipAndEnableScrolling="true" id="descriptionBox"> 
      <s:RichText id="richText" creationComplete="updateText('add')" 
       width="490" textAlign="justify" fontFamily="Arial" fontSize="12" color="#999999" /> 
     </s:Group> 
    </s:Scroller> 
</s:Application> 

您不想在组上添加明确的宽度/高度,因为它取决于其孩子的尺寸。如果您将其包装在Scroller中,它会处理您的所有细节。

如果要定制这些元素上的图形,可以查看VScrollBarSkin,VScrollBarThumb,VScrollBarTrack等。如果你不想要水平滚动条,你可以不把它包含在你的MyScrollerSkin类中。

希望帮助, 兰斯

+0

您好,感谢您的答复,我没有看到在那里的任何代码? – shipmaster 2010-01-12 17:10:34

+0

是否解决了这个问题? – 2010-02-20 03:48:02

+0

是的,谢谢。 – shipmaster 2010-03-02 22:22:18