0

ユーザーがマウスドラッグを使用して長方形の形状、幅、高さを変更できるフラッシュベースのアプリケーションを作成しています。ここに簡単なプロトタイプの画像があります。 ここに画像の説明を入力

簡単に説明させてください: あなたが見ることができる画像では、私は小さな赤い長方形を持っています。これは現在座っている開始位置であり、ユーザーはそれを 100px だけ右側にドラッグできます。アイデアは、ユーザーがそれを右にドラッグしているときに、フレキシブルボックスのように、長方形も右側に拡張したいということです。彼が引きずっている場合は、それで戻ります。

したがって、疑問は次のとおりです。ユーザーが右側または左側をドラッグしているかどうかをどのように確認しますか。それに基づいて、長方形の幅を更新できます。

コードは次のとおりです。

import flash.geom.Rectangle;
import flash.events.MouseEvent;

var horizRect:Rectangle = new Rectangle(scrollPathHoriz.x, scrollPathHoriz.y, 100, 0);
var horizCount:Number;

//event listener for the anchor point.
scrollHoriz.addEventListener(MouseEvent.MOUSE_DOWN, dragScroller);
stage.addEventListener(MouseEvent.MOUSE_UP, dropScroller);

//mouse down and mouse up event handler.
function dragScroller(evt:MouseEvent):void {

    horizCount= scrollHoriz.x;

    scrollHoriz.startDrag(false, horizRect);
    scrollHoriz.addEventListener(MouseEvent.MOUSE_MOVE, calculateHorizPixel);
}

function dropScroller(evt:MouseEvent):void {
    scrollHoriz.stopDrag();
    scrollHoriz.removeEventListener(MouseEvent.MOUSE_MOVE, calculateHorizPixel);
}


function calculateHorizPixel(evt:MouseEvent):void {

    horizCount ++;
    trace(horizCount);

}
4

2 に答える 2

2

すでに開始x位置を保存しているので、

開始位置と現在の位置の違いが必要です。

function calculateHorizPixel(evt:MouseEvent):void {

      var dx = scrollHoriz.x - horizCount;

      trace(dx);
}

dxの負の値は、scrollHorizが左に移動したこと、または右に移動したことを示します。

于 2013-01-23T10:30:42.060 に答える
0

またはこれを試してください:

import flash.events.MouseEvent;

stage.addEventListener(MouseEvent.MOUSE_MOVE, moveMouse);

function moveMouse(event:MouseEvent):void
{
    var dx:Number = mouseX - stage.stageWidth/2;
    trace(dx);
}
于 2013-01-25T19:45:41.713 に答える