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)在哪里我在场景中设置了 registerTouchArea 而不是 HUD。

所以现在它已经修复了!:)

无论如何谢谢!

于 2012-05-09T18:47:31.053 回答