我的问题的答案可能很简单,但我没有找到在网络上解决它的例子,也没有找到一个阅读ActionScript参考的解决方案。
我的问题如下:我在Scroller(spark.components.Scroller)窗口中有一个很大的UIComponent派生元素。 Scroller类非常棒,因为当我的canvas元素(动态改变大小)超出其边界时,滚动条会自动出现并处理其中UIComponent的滚动。
但是,我不仅要能够使用这些自动出现的滚动条进行滚动,还要使用我自己实现的平移工具(例如,类似于Adobe软件中的手动工具)。问题是我无法正确修改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="->" click="der_clickHandler(event)"/>
<s:Button id="izq" x="76" y="182" label="<-" click="izq_clickHandler(event)"/>
</s:Application>
和编译版本的链接,看看我在说什么: http://megaswf.com/file/1135821 (如果看不到,请按'查看全屏')
帮助真的很感激,因为我整个下午都被困在这里,而且我的项目确实需要它:S
无论如何,非常感谢提前和问候!
答案 0 :(得分:1)
我设法解决了! (这是我本周第二次在这里发布后解决了一些问题:D)。
我必须更改的属性是sc.viewport.horizontalScrollPosition + = 5;而不是内部元素'x'的位置。对于垂直位置也一样。