1

ZoomCamera の HUD にクリック可能なスプライトを配置しようとしています。スプライトはタッチ イベントを問題なく検出しますが、それは ZoomCamera が元の位置に配置されている場合のみです。

カメラをズームインまたはパンすると、タッチ領域がカメラではなくシーンに相対的な領域にとどまっているように見えます。したがって、スプライトが元の状態で存在していた領域をクリックした場合にのみ、アクションが機能します。

これは関連するコードのほとんどです -

FloorSelectorButton firstButton = new FloorSelectorButton(0, 100, 80, 80,
            this.getVertexBufferObjectManager(), 3, this);

    FloorSelectorButton secondButton = new FloorSelectorButton(0, 180, 80, 80,
            this.getVertexBufferObjectManager(), 2, this);

    FloorSelectorButton thirdButton = new FloorSelectorButton(0, 260, 80, 80,
            this.getVertexBufferObjectManager(), 1, this);


    mScene = new Scene();
    mScene.setOnAreaTouchTraversalFrontToBack();
    HUD hud = new HUD();

    mZoomCamera.setHUD(hud);

    hud.attachChild(firstButton);
    hud.attachChild(secondButton);
    hud.attachChild(thirdButton);

    hud.registerTouchArea(firstButton);
    hud.registerTouchArea(secondButton);
    hud.registerTouchArea(thirdButton);
            this.mScrollDetector = new SurfaceScrollDetector(this);
        this.mPinchZoomDetector = new PinchZoomDetector(this);
        this.mScene.setOnSceneTouchListener(this);
        this.mScene.setTouchAreaBindingOnActionDownEnabled(true);
        return mScene;

FloorSelectorButton は、Sprite を拡張し、onAreaTouch メソッドを実装する単なるクラスです。

皆さんが私を助けてくれることを願っています!

ありがとう!

4

1 に答える 1

2

どうやら私の問題は本当に愚かでした。何らかの理由で APK が電話で更新されず、古いコードのままだったようです (このため - http://groups.google.com/group/android-developers/browse_thread/thread/2eb92316b474fa00 ) HUD の代わりにシーンに registerTouchArea を設定しました。

これで修正されました!:)

とにかく、ありがとう!

于 2012-05-09T18:47:31.053 に答える