0

MovieClip を一定の角度で回転させようとしているので、滑らかにする必要があるため、mc.rotate(int) はアウトです。

現在、私は無期限に回転するこれを持っています:

    public function wheelSpinning () : void
    {
        addEventListener(Event.ENTER_FRAME, startSpin);
    }

    public function startSpin(event:Event):void 
    {
        mc.rotation+=1;
    }

誰かが私を正しい方向に向けることができますか? やるのは初めてで戸惑います。Google fu はさまざまな結果を返します。間違ったキーワードを使用しているのではないかと心配しています。

4

3 に答える 3

3

Greensock.com のTweenMaxライブラリを使用します。非常に便利なメソッド/プラグインがあります。shortRotationこれは自動的に最短方向に回転します (オブジェクトが 180 度以上回転する場合に非常に役立ちます)。

TweenMax.to(mc, 1, {shortRotation:{rotation:270}});

それでおしまい。

私は Flash の Tween クラスを使用しません。あまり効率的ではありません。

于 2012-05-23T15:53:47.260 に答える
0

基本的なイージングを使用して、物事をスムーズに保つことができます。

private var degrees:Number = 2; // increase rotation by 2
private var easing:Number = .5; // easing value
private var finalDegree:Number = 90; // Degree the rotation will iterate to

...

public function wheelSpinning() : void
{
    addEventListener(Event.ENTER_FRAME, startSpin);
}

public function startSpin(evt:Event):void 
{
    var c:Number = mc.rotation + degrees * easing;

    if (c >= finalDegree) 
    {
       /* Prevent the rotation from being greater than the
          finalDegree value and remove the event listener */
        mc.rotation = finalDegree;
        removeEventListener(Event.ENTER_FRAME, startSpin);
    }
    else
    {
        /* Apply the easing to the rotation */
        mc.rotation = c;
    }
}

それらの値を試して、ニーズに合った値を見つけてください。AS3を学習している場合は、ライブラリを使用してすべてを自分でアニメーション化および作成することは避けてください。ライブラリの内部にあるものは、ここで紹介したものよりもはるかに複雑ですが、何が起こっているのかについての基本的な理解が得られます。
それ以外の場合は、この面白い数学をすべてカプセル化したライブラリを使用して、アプリケーション/ゲームのロジックについて心配することをお勧めします。GTweenGreensockなど、たくさんのライブラリを見つけることができます。

それが役に立てば幸い。

于 2012-05-23T19:54:48.950 に答える
0

解決策 1: 目的のローテーションに到達したら、イベントを削除します。

public function startSpin(event:Event):void 
{
    if(mc.rotation == someValue)
    {
        removeEventListener(Event.ENTER_FRAME, startSpin);
    }
    else
        mc.rotation+=1;
}

解決策 2: flash のトゥイーンを使用してください。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/transitions/Tween.html

解決策 3: サード パーティのトゥイーン ライブラリを使用します。Tweener http://hosted.zeh.com.br/tweener/docs/en-us/を使用しています

于 2012-05-23T15:34:46.377 に答える