You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HaxeFlixel实现鼠标点击逻辑报Bool cannot be called错误求解

问题场景

使用HaxeFlixel开发时实现鼠标点击响应功能遇到编译报错,错误信息:

TitleState.hx:531: characters 6-28 : Bool cannot be called

触发报错的原有代码:

if(FlxG.mouse.justPressed(logo2))
{
    MusicBeatState.switchState(new StoryMenuState());
}

已确认全局Mouse相关配置变量均设置为true。

错误原因

FlxG.mouse.justPressed是布尔类型的只读属性,作用是标记当前帧鼠标是否刚完成按下动作,本身不是可传入参数的调用方法。代码中为其追加圆括号并传入logo2参数的写法,相当于尝试把布尔值作为函数执行,直接触发类型错误。

修复方法

实现点击logo2对象触发场景跳转,可使用以下两种经过验证的写法:

  • 推荐写法:使用交互对象自带的鼠标检测属性
    提前在logo2初始化逻辑中开启对象级鼠标交互:
    logo2.mouseEnabled = true;
    
    替换原有点击判断逻辑为:
    if(logo2.justPressed)
    {
        MusicBeatState.switchState(new StoryMenuState());
    }
    
  • 原生判断写法:结合全局鼠标状态+坐标碰撞检测
    不需要依赖对象的鼠标交互开关,直接判断鼠标位置是否落在对象碰撞盒内:
    if(FlxG.mouse.justPressed && logo2.getHitbox().contains(FlxG.mouse.x, FlxG.mouse.y))
    {
        MusicBeatState.switchState(new StoryMenuState());
    }
    

内容的提问来源于stack exchange,提问作者Jolttr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:48:06