我正在使用Flash CS 5和Flex 4来构建Android的AIR应用程序。我想知道如何允许用户上下移动内容(图像或文本)(如地图,在这种情况下只是垂直)。
答案 0 :(得分:1)
目前还没有可用的触摸UI控件,因此您需要自己实现它。这里有一些可能有助于您入门的代码。我在时间轴上写了它,以便我可以快速测试它。如果你在课堂上使用它,你需要进行一些调整。
变量content
是舞台上的MovieClip。如果它大于舞台的高度,您可以通过用鼠标拖动它(或用手指在触摸屏上)滚动它。如果它小于舞台的高度,则它根本不会滚动,因为它不需要。
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
快。