【问题标题】:How can I able to move the content up and down in AIR-Android ?如何在 AIR-Android 中上下移动内容?
【发布时间】:2010-09-30 10:20:24
【问题描述】:

我正在使用 Flash CS 5 和 Flex 4 来构建适用于 android 的 AIR 应用程序。我想知道如何允许用户上下移动内容(图像或文本)(如地图,在这种情况下仅垂直)。

【问题讨论】:

  • 第一,在 Flex 中,我尝试使用 TextArea 组件,其中包含歌词。所以用户可以使用滚动条上下滚动。但我更希望看到歌词有艺术家的背景图片(看起来更有吸引力),所以我使用 Flash CS 5 来做到这一点。但是由于我必须在 Flash 中设置文档属性,所以我发布后 Text 控件中的歌词被截断了。我不希望该文本被切掉,我想让用户按下并上下滚动屏幕以查看 android 设备中的完整歌词。谢谢你,这就是我到目前为止所尝试的。

标签: android flash apache-flex air air-android


【解决方案1】:

目前还没有可用的触控 UI 控件,因此您需要自己实现它。这里有一些代码可能会帮助您入门。我把它写在时间线上,以便我可以快速测试它。如果您在课堂上使用它,则需要进行一些调整。

变量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 快。

【讨论】:

    猜你喜欢
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    相关资源
    最近更新 更多