Como posso mover o conteúdo para cima e para baixo no Air-Android?
-
26-09-2019 - |
Pergunta
Estou usando o Flash CS 5 e o Flex 4, ambos para criar um aplicativo de ar para Android. Eu gostaria de saber como permitir que o usuário mova o conteúdo (imagem ou texto) para cima e para baixo (como um mapa, neste caso apenas verticalmente).
Solução
Ainda não há controles de interface do usuário disponíveis, então você precisa implementá -lo sozinho. Aqui está um pouco de código que pode ajudar você a começar. Eu escrevi na linha do tempo para poder testá -lo rapidamente. Você precisará fazer alguns ajustes se estiver usando em uma aula.
A variável content
é um movimento que está no palco. Se for maior que a altura do palco, você poderá rolá -lo arrastando -o com o mouse (ou com o dedo em uma tela de toque). Se for menor que a altura do palco, não rolará, porque não precisa.
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);
}
Como alternativa, você pode usar o scrollRect
propriedade. Esse é muito bom porque mascarará o conteúdo de uma região retangular para você. Se você apenas mudar y
Como no código acima, você pode desenhar outros objetos de exibição na parte superior do conteúdo de rolagem para simular o mascaramento. É mais rápido que scrollRect
também.