0

Raphael.FreeTransform を使用して要素をスケーリングせずに回転させることは可能ですか?

で要素を初期化scale: false, rotate: trueすると、スケーリングせずに回転することしかできず、それで問題ありません。私は同じことを達成したくありませんが、rotate startイベントが発生したとき、つまり. scaleコールバック関数から動的に変更したい:

    ft = paper.freeTransform(rect, {}, function(ft, events) {
        if (events.indexOf("rotate start") !== -1) {
            ft.setOpts({scale: false});
        }
    });

要素は、次のプロパティで初期化されます。

    ft.setOpts({
        keepRatio: false,
        draw: 'bbox',
        snap: {
            rotate: 45
        },
        keepRatio: ['axisX', 'axisY']
    });

JSFiddle

4

1 に答える 1

1

私は実際にこれを行う方法を考え出しました。次のパラメーターを使用して FreeTransform を初期化するだけです。

    ft.setOpts({
        drag: ['center', 'self'],
        rotate: ['axisY'],
        scale: ['bboxCorners', 'bboxSides'],
        keepRatio: ['bboxCorners'],
        snap: {
            rotate: 45
        },
        draw: 'bbox'
    });

http://alias.io/raphael/free_transform/は、これを理解するのに大いに役立ちました。

于 2013-06-16T06:34:46.310 に答える