0

これが再投稿である場合は申し訳ありませんが、これと同様に他のサイトで回答を確認しましたが、情報が十分ではなく、まだ多くのことを学んでいます.

しかし、私の質問は、呼び出されたエンジンクラスと呼び出さkeepFocusEngineれた別のクラスmcStarがあり、この問題に遭遇していないため、その方法がよくわかりませんが、mcStarから my keepFocusEngine. したがって、私の mcStarクラスには、private var speed:Number;これを保持する整数変数がありますspeed = 2 + Math.random()*2;speed = 10 + Math.random()*2;この関数を使用して、速度変数をmyからthis に変更したいkeepFocusEngine:

private function shootPlayerObject(e:TouchEvent):void 
    {
        if (e.type == TouchEvent.TOUCH_TAP)
        {
            btnShootPlayer = true;
        }else
        {
            btnShootPlayer = false;
        }
    }

だからbtnShootPlayer = true;speed = 10 + Math.random()*2;が呼ばれたいなら。

私が誰かを混乱させてしまったらごめんなさい。しかし、私が達成しようとしていることを理解していますか?

4

1 に答える 1

0

きちんとしたい場合は、keepFocusEngineクラスにゲッター/セッター関数を書くことができます。次に、speed変数をプライベートのままにしておくことができます。もちろん、ゲッターとセッターはクラス外でアクセスできるように公開する必要があります。

keepFocusEngine、次を追加します。

public function GetSpeed() : Number
{
    return speed;
}

public function SetSpeed(newspeed:Number)
{
    speed = newspeed;
}

次に、提供されたコードを次のように変更できます。

private function shootPlayerObject(e:TouchEvent):void 
{
    if (e.type == TouchEvent.TOUCH_TAP)
    {
        btnShootPlayer = true;
        keepFocusEngine.SetSpeed(10 + Math.random()*2);
    }else
    {
        btnShootPlayer = false;
    }
}

いつでも速度を知りたい場合は、 を使用できますkeepFocusEngine.GetSpeed()。これにより、クラスパスにある程度の洞察があるため、プログラミングが容易になります。また、ゲッターまたはセッターが呼び出されると、その関数で必要なことを行うことができます。たとえば、常に speed*10 を返す方が簡単だと思われる場合は、getter を使用できreturn speed*10;ます。

編集: この質問を参照したいと思います:パブリック変数よりもプロパティを好むのはなぜですか?

于 2013-04-16T07:29:01.880 に答える