【问题标题】:Flash Component Unable to set scrollRectFlash 组件无法设置 scrollRect
【发布时间】:2013-08-20 15:09:22
【问题描述】:

我有一个组件,我正在尝试从全局应用程序代码中设置一个 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);
        }

返回是作为测试手段添加的。

【问题讨论】:

  • 你的问题我不清楚。我不知道这意味着什么:“但是,当我在该组件中设置事件,从函数定义中删除 public 时,它会按预期运行。”也许您可以添加一些代码来显示您在按预期工作时所做的事情,或者至少阐明“当我在该组件中设置事件时”的意思。
  • 我需要以编程方式滚动
    的内容。

标签: flash scrollrect


【解决方案1】:

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

通常,您将&lt;s:HGgroup&gt; 包装在&lt;s:Scroller&gt; 中。要调整滚动位置,您可以更改ScrollerhorizontalScrollPositionverticalScrollPosition 属性。

【讨论】:

  • 好的...哇,谢谢。这完全解决了我的问题。花了 5 天左右的时间来尝试实现一个 scrollRect 对象......所有这些都需要一行代码。谢谢!
猜你喜欢
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-18
相关资源
最近更新 更多