0

ムービークリップを Y 軸に沿って上下に移動する 2 つのボタンがあります。ムービークリップを特定の高さで停止させ、反対方向に移動できるようにするにはどうすればよいですか?

私はこれが次のように動作する必要があります:

下ボタンを押すと、ムービークリップは下に移動しますが、Y=500 を超えません。上ボタンを押すと、ムービークリップは上に移動しますが、Y= 300 を超えません。

ムービークリップを正しいポイント (500) で停止させますが、このポイントに到達するとスタックします..そのため、上ボタンを押しても再び上に移動しません。

誰かが私を助けてくれますか?:)

これまでの私のコードは次のとおりです。

1) decrease = the down-button
2) increase = up-button
3) stempel = the movieclip I want to stop on the Y-axis



var moveStempel = 0;

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

increase.addEventListener(MouseEvent.MOUSE_DOWN, increasePressed); 
increase.addEventListener(MouseEvent.MOUSE_UP, removeEnterFrame);

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


function increasePressed(e:MouseEvent):void  
{   
    moveStempel = -2;
    addEnterFrame();
}




// ADD ENTER FRAME 
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 
{     
    if (stempel.y < 500)
    {
        stempel.y += moveStempel;
        trace("inside");
    }

    else if (stempel.y > 500)
    {
        stempel.stop();
        trace("outside");
    }
4

1 に答える 1

0

現在のコードでstempelは、y値が 500 を超えると、二度と移動できなくなります。

移動できる条件は 2 つありますstempel。下に移動している場合は許容範囲の最下部にあることはできず、上に移動している場合は許可されている範囲の上部にあることはできません。

if ((stempel.y < 500 && moveStempel == 2) || (stempel.y > 300 && moveStempel == -2))
{
    stempel.y += moveStempel;
    trace("inside");
}
else
{
    stempel.stop();
    trace("outside");
} 
于 2012-06-11T13:49:20.107 に答える