0

我有一个组件,我正在尝试从全局应用程序代码中设置一个 scrollRect 。

当我将函数定义为

public function foo():void{ obj.scrollRect = new Rectangle(blah,blah,blah,blah); }

scrollRect 不会被应用,视口也不会改变。

但是,当我在该组件中设置事件,从函数定义中删除 public 时,它会按预期运行。

我需要以编程方式滚动

此功能按预期使用渐变滚动:

function mouseClickNext(event:MouseEvent):void{
            var sum:Number = bookmark_navigator.width -x_holder;
            if( sum<= 310)return;
            if(bookmark_navigator.width >= 310){

                var obj:Rectangle = bookmark_navigator.scrollRect;
                var setWidth:Number = bookmark_navigator.numElements * 28;

                if(x_holder + 40 >= bookmark_navigator.width)
                    x_holder=bookmark_navigator.width;
                else x_holder += 40;
                bookmark_navigator.scrollRect = new Rectangle(x_holder,0,bookmark_navigator.width,30);
            }
        }

但是,此功能不会:

var np:Number = 0;
        public function check():void{
            return;
            np= 0;
            while(true){
                try{

                    var sum:Number = bookmark_navigator.width -np;
                    if( sum<= 310)break;
                    np += 40;
                }catch(e:Error){break;}
            }
            bookmark_navigator.scrollRect = new Rectangle(np,0,bookmark_navigator.width,30);
        }

退货是作为一种测试手段加入的。

4

1 回答 1

0

如果您使用的是 Flex,您可能应该避免使用该scrollRect属性,因为 Flex 有它自己的滚动行为实现。

通常,您将您的包装<s:HGgroup>在一个<s:Scroller>. 要调整滚动位置,您可以更改 的horizontalScrollPositionverticalScrollPosition属性Scroller

于 2013-08-20T16:31:09.433 回答