私はFlashCS5とFlex4を使用して、Android用のAIRアプリケーションを構築しています。ユーザーがコンテンツ(画像またはテキスト)を上下に(地図のように、この場合は垂直方向にのみ)移動できるようにする方法を知りたいです。
質問する
1393 次
1 に答える
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
。
于 2010-10-01T21:56:01.913 に答える