首页 > 解决方案 > SpriteWidget:应用程序不响应 NodeWithSize 中的 handleEvent

问题描述

我创建了一个小部件,添加了一些精灵并制作了一些动画。我想添加一些用户交互,但handelEvent方法不起作用。我已经设置userInteractionEnabledtrue.

我尝试调试并在方法中放置一个断点,handleEvent但是当我触摸屏幕时它并没有停止。

class MainSceneBackgroundNode extends NodeWithSize {
    Sprite _logo;
    RepeatedImage _background;
    GuyImage _guy;
    int _i = 0;
    int _j = 0;

    int _dir = -1;

    MainSceneBackgroundNode() : super(new Size(2560.0, 1440.0)) {
        userInteractionEnabled = true;
        handleMultiplePointers = false;

        // Add background
        _background = new RepeatedImage(_imageMap["assets/background.png"]);
        addChild(_background);

        _guy = new GuyImage();
        addChild(_guy);

        _logo = new Sprite.fromImage(_imageMap["assets/logo.gif"]);
        _logo.pivot = Offset.zero;
        _logo.size = new Size(912, 486);
        _logo.position = new Offset(824, 10);
        addChild(_logo);
    }

    @override
    bool handleEvent(SpriteBoxEvent event) {
        if (event.type == PointerDownEvent) {
            if (event.boxPosition.dx < 1280) {
                _dir = -1;
            } else {
                _dir = 1;
            }
        }
        return true;
    }     
...        
}

任何建议将不胜感激。我不知道还能做什么。

提前致谢。

标签: dartflutter

解决方案


推荐阅读