0

我的问题的答案可能很简单,但我还没有在网络上找到解决它的示例,也没有找到阅读 ActionScript 参考的解决方案。

我的问题如下:我在 Scroller (spark.components.Scroller) 窗口中有一个很大的 UIComponent 派生元素。Scroller 类很棒,因为当动态改变大小的画布元素超出其边界时,滚动条会自动出现并在其中处理我的 UIComponent 的滚动。

但是,我不仅希望能够使用这些自动出现的滚动条进行滚动,还希望能够使用我自己实现的平移工具(例如,类似于 Adob​​e 软件中的手​​动工具)。问题是我无法正确修改元素在 Scroller 窗口内的位置。

作为第一种方法,我尝试访问我的元素的“x”和“y”属性,但是,在更改它们时,我没有得到想要的结果。它的代码如下(为了简单起见,我使用一个文本标签作为我的“内部”元素,并使用两个按钮作为外部滚动控制器,而不是手动工具)

Tests.mxml

    <fx:Script>
        <![CDATA[

            protected function der_clickHandler(event:MouseEvent):void
            {
                text.x += 5;

            }

            protected function izq_clickHandler(event:MouseEvent):void
            {
                text.x -= 5;

            }

        ]]>
    </fx:Script>

    <fx:Declarations>
    </fx:Declarations>
    <s:Scroller id="sc" x="50" y="50" width="200" height="100">
        <s:Group width="100%" height="100%">
            <s:Label id="text" width="400" height="10" x="50" y="50" text="blebleblebleblebleblebleblebleblebleblebleble"/>
        </s:Group>
    </s:Scroller>
    <s:Button id="der" x="154" y="182" label="-&gt;" click="der_clickHandler(event)"/>
    <s:Button id="izq" x="76" y="182" label="&lt;-" click="izq_clickHandler(event)"/>

</s:Application>

还有一个编译版本的链接,看看我在说什么: http: //megaswf.com/file/1135821 (如果看不到,请按“查看全屏”)

非常感谢您的帮助,因为我整个下午都被困在这个问题上,并且我的项目真的需要它:S

无论如何,提前非常感谢,问候!

4

1 回答 1

1

我设法解决了!(这是我本周第二次在此处发布后解决问题:D)。

我必须更改的属性是 sc.viewport.horizo​​ntalScrollPosition+=5; 而不是内部元素的“x”位置。垂直位置也是如此。

于 2011-06-22T09:00:24.817 回答