1

ボタン(減少)があり、ボタンを押すと矢印が左に回転します。矢印を特定の角度 (約 8 時の位置) で停止する必要があります。

矢印の角度を取得し、このポイントを超えて回転しないようにするにはどうすればよいですか (ユーザーがボタンを押し続けても)。

これが私のコードです:

import flash.display.MovieClip;
import flash.events.MouseEvent; 
import flash.events.Event;

stop();

var rotate = 0;  

decrease.addEventListener(MouseEvent.MOUSE_DOWN, decreasePressed);  
decrease.addEventListener(MouseEvent.MOUSE_UP, removeEnterFrame); 

function decreasePressed(e:MouseEvent):void  
{   
        rotate = -2;
        addEnterFrame();
}

function addEnterFrame():void 
{     
    this.addEventListener(Event.ENTER_FRAME, update); 
}  

function removeEnterFrame(e:MouseEvent):void 
{     
    this.removeEventListener(Event.ENTER_FRAME, update); 
}  

function update(e:Event):void 
{     
    arrow1.rotation += rotate;
} 
4

1 に答える 1

0

矢印が上向きで垂直に作成されていると仮定すると、反時計回りに回転したときの 8 時の位置は約 -112 度です。したがって、更新メソッドにチェックを追加して、矢印の回転が -112 未満の値に設定されていないことを確認する必要があります。

// May need to adjust this depending on how your arrow is created
var minDegrees = -112;

function update(e:Event):void 
{   
    var position:int = arrow1.rotation + rotate;

    // Check increment of rotation does not take us past our limit
    if (position <= minDegrees) 
         position = minDegrees;

    arrow1.rotation = position;
} 
于 2012-07-02T23:52:16.467 に答える