我正在使用Flash CS 5和Flex 4,这两个都是为了构建一个Android的AIR应用程序。我想知道如何允许用户上下移动内容(图像或文本)(就像Map一样,在这种情况下只是垂直移动)。
doinxwow1#
目前还没有可用的触摸UI控件,因此您需要自己实现它。这里有一些代码,可能有助于您入门。我将其写在时间线上,以便可以快速测试它。如果您要在课堂上使用它,则需要进行一些调整。变量content是舞台上的一个MovieClip。如果它大于舞台的高度,则可以通过用鼠标拖动(或用手指在触摸屏上拖动)来滚动它。如果它小于舞台的高度,则根本不会滚动它,因为它不需要滚动。
content
var maxY:Number = 0; var minY:Number = Math.min(0, stage.stageHeight - content.height); var _startY:Number; var _startMouseY:Number; addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); function mouseDownHandler(event:MouseEvent):void { _startY = content.y; _startMouseY = mouseY; stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler, false, 0, true); } function stage_mouseMoveHandler(event:MouseEvent):void { var offsetY:Number = mouseY - _startMouseY; content.y = Math.max(Math.min(maxY, _startY + offsetY), minY); } function stage_mouseUpHandler(event:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler); stage.removeEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler); }
或者,您可以使用scrollRect属性。这个属性非常好,因为它会将内容遮罩为一个矩形区域。如果您像上面的代码一样更改y,您可以在滚动内容的顶部绘制其他显示对象来模拟遮罩。它也比scrollRect快。
scrollRect
y
1条答案
按热度按时间doinxwow1#
目前还没有可用的触摸UI控件,因此您需要自己实现它。这里有一些代码,可能有助于您入门。我将其写在时间线上,以便可以快速测试它。如果您要在课堂上使用它,则需要进行一些调整。
变量
content
是舞台上的一个MovieClip。如果它大于舞台的高度,则可以通过用鼠标拖动(或用手指在触摸屏上拖动)来滚动它。如果它小于舞台的高度,则根本不会滚动它,因为它不需要滚动。或者,您可以使用
scrollRect
属性。这个属性非常好,因为它会将内容遮罩为一个矩形区域。如果您像上面的代码一样更改y
,您可以在滚动内容的顶部绘制其他显示对象来模拟遮罩。它也比scrollRect
快。