Adobe Flex перемещает ползунок полосы прокрутки программно - PullRequest
2 голосов
/ 22 января 2009

Мне нужно программно переместить ползунок на полосу прокрутки (не перемещать полосу прокрутки, просто ползунок; т.е. сбросить его на верхний или левый и т. Д.) Кто-нибудь понял это?

1 Ответ

3 голосов
/ 22 января 2009

Я собирался упомянуть программный скиннинг, но, подумав, кажется, что вы пытаетесь просто установить позицию прокрутки компонента. Это правильно? Если это так, это зависит от того, какой тип управления вы используете, и какую прокрутку вы хотите выполнить (например, для элемента в списке или просто для горизонтального или вертикального положения):

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:Script>
        <![CDATA[

            private function scrollToIndex():void
            {
                ls.scrollToIndex(15);
            }

            private function scrollToPoint():void
            {
                cv.verticalScrollPosition += 20;
            }

        ]]>
    </mx:Script>

    <mx:VBox width="300">
        <mx:List id="ls" width="100%" rowCount="5">
            <mx:dataProvider>
                <mx:Array>
                    <mx:String>Item 1</mx:String>
                    <mx:String>Item 2</mx:String>
                    <mx:String>Item 3</mx:String>
                    <mx:String>Item 4</mx:String>
                    <mx:String>Item 5</mx:String>
                    <mx:String>Item 6</mx:String>
                    <mx:String>Item 7</mx:String>
                    <mx:String>Item 8</mx:String>
                    <mx:String>Item 9</mx:String>
                    <mx:String>Item 10</mx:String>
                    <mx:String>Item 11</mx:String>
                    <mx:String>Item 12</mx:String>
                    <mx:String>Item 13</mx:String>
                    <mx:String>Item 14</mx:String>
                    <mx:String>Item 15</mx:String>
                    <mx:String>Item 16</mx:String>
                    <mx:String>Item 17</mx:String>
                    <mx:String>Item 18</mx:String>
                    <mx:String>Item 19</mx:String>
                    <mx:String>Item 20</mx:String>
                </mx:Array>
            </mx:dataProvider>
        </mx:List>
        <mx:Button label="Scroll" click="scrollToIndex()" />
        <mx:Canvas id="cv" width="100%" height="200">
            <mx:TextArea width="100%" height="600" verticalScrollPolicy="off">
                <mx:text>
                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
                    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
                    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
                    nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 
                    reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
                    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in 
                    culpa qui officia deserunt mollit anim id est laborum.

                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
                    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
                    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
                    nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 
                    reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
                    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in 
                    culpa qui officia deserunt mollit anim id est laborum.

                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
                    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
                    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
                    nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 
                    reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
                    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in 
                    culpa qui officia deserunt mollit anim id est laborum.

                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
                    do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
                    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
                    nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 
                    reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
                    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in 
                    culpa qui officia deserunt mollit anim id est laborum.              
                </mx:text>
            </mx:TextArea>
        </mx:Canvas>
        <mx:Button label="Scroll" click="scrollToPoint()" />
    </mx:VBox>  

</mx:Application>

Вероятно, вам нужны свойства verticalScrollPosition и horizontalScrollPosition (доступные во всех реализациях класса Container) и метод scrollToIndex (для списков). Этот пример иллюстрирует оба. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...