0

オブジェクトを一致させる必要があるフラッシュアプ​​リケーションを作成しました。したがって、以下では、オブジェクト(ship、obj1、obj2、obj3)をターゲット(t1、t2、t3、t4)に設定しています。次に、スコアを0に設定します。

private function onAddedToStage(e:Event):void
    {
        stage.addEventListener(MouseEvent.MOUSE_UP, _check);
        removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
        addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);

        ship.setTarget(t1,shipObject);

        obj1.setTarget(t2,1Object);

        obj2.setTarget(t3,2Object);

        obj3.setTarget(t4,3Object);

        score = 0;
                    scorecounter.text =" SCORE:" + score.toString();

    }

次に、オブジェクト(この場合は船)がターゲットに到達したかどうかを確認する関数を作成しました。

function _check(event:TimerEvent):void 
    {
        if(ship.done)
           {     
              score += 1;
              scorecounter.text =" SCORE:" + score.toString();
           }

            }

これは正しく機能します。ユーザーが船をターゲットにドラッグすると、スコアに+1が追加されますが、問題が発生するためです。複数のオブジェクト/ターゲットがあります。これは、ユーザーが船をターゲットに移動し終えると、オブジェクトの船がまだターゲットにあるため、移動した他のオブジェクトは即座にスコアに+1を与えることを意味します。

誰かがこれを修正する方法について何かアイデアを持っていますか?

どうもありがとう。

4

1 に答える 1

0

うーん...完全なコードなしで何が起こっているのかをキャプチャするのは少し難しいですが、ここにショットがあります:

あなたの「ship」オブジェクトには「done」というプロパティがあるので、「done」というオブジェクトに変数/プロパティを作成したと思います。これにより、「scored」のような別のプロパティを船に追加できると思います。

したがって、コードは次のようになります。

if ((ship.done) && (ship.scored == false)){
  ship.scored = true;
  score += 1;
  scorecounter.text = "SCORE:" + score.toString();
}

それはあなたにとって可能ですか?

于 2013-03-25T20:23:04.113 に答える