查看: 2974|回复: 1

[已经过期] 求问怎样实现主菜单鼠标移动变色

[复制链接]
梦石
0
星屑
270
在线时间
49 小时
注册时间
2017-6-6
回帖
11
发表于 2017-9-23 21:30:55 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我用了这个代码 把主菜单改成图片,求问怎么能让鼠标移过去他就变颜色??

[pre lang="javascript"]var _Scene_Title_create = Scene_Title.prototype.create;
Scene_Title.prototype.create = function () {
    _Scene_Title_create.call(this);
    this._commandWindow.visible = false;//不显示原始的文本菜单
    this._commandWindow.x=Graphics.width;//移到画面外去,否则虽然不显示仍能点击
    var btnimgs=["CmdStartGame", "CmdContinueGame", "CmdOptions"];
    var clicks=[
        function(){this.commandNewGame(); SoundManager.playOk();},
        function(){this.commandContinue(); SoundManager.playOk();},
        function(){this.commandOptions(); SoundManager.playOk();},
        
    ];
    this._cmdButtons=[];//所有图片菜单
    for(var i in btnimgs){
        var sprite=new Sprite_Button();
        sprite.width=184;
        sprite.height=53;
        sprite.bitmap=ImageManager.loadBitmap("img/mndtitle/", btnimgs);
        //sprite.anchor=new Point(0.5,0.5);//不要设置,设置这个会出现菜单点不中的问题,不清楚原因。
        sprite.x=Graphics.width/2-92;
        sprite.y=360+60*i;
        sprite.setClickHandler(clicks.bind(this));
        this._cmdButtons.push(sprite);
        this.addChild(sprite);
    }
    this._cmdSelect=new Sprite(ImageManager.loadBitmap("img/mndtitle/", "CmdSelect"));//选中菜单的指示器
    this._cmdSelect.anchor=new Point(1,0);//因为按钮的anchor是默认的(0,0),这个指示器要放在按钮左侧,所以让它的anchor为(1,0)更容易定位
    this.addChild(this._cmdSelect);
};


[/pre]
QQ截图20170923212850.jpg
梦石
0
星屑
50
在线时间
370 小时
注册时间
2016-1-7
回帖
81
发表于 2017-9-24 00:07:25 | 显示全部楼层
本帖最后由 在野月光 于 2017-9-24 00:18 编辑

移动变色?什么意思?
如果只是想分配鼠标移入移出时的变化,
那么TouchInput._onMouseMove抄一下再改一下就是了。
比如(仅供参考):
[pre lang="javascript"]
Scene_Title.prototype.initialize = function() {
        Scene_Base.prototype.initialize.call(this);
        document.addEventListener('mousemove', this.onMouseMove.bind(this));        // <<< 添加
};

Scene_Title.prototype.onMouseMove = function(event) {                //   <<< 新建
        var x = Graphics.pageToCanvasX(event.pageX);
        var y = Graphics.pageToCanvasY(event.pageY);
        if(SceneManager._scene.constructor == Scene_Title){
                this.onMove(x, y);
        }
};

Scene_Title.prototype.onMove = function(x, y) {                //  <<< 新建
        var 按钮 = [];
        按钮[0] = {'左边': 20, '右边': 100, '顶边': 20, '底边': 40};        // 假设的按钮边界指标 A
        按钮[1] = {'左边': 20, '右边': 100, '顶边': 40, '底边': 60};        // 假设的按钮边界指标 B
        按钮[2] = {'左边': 20, '右边': 100, '顶边': 60, '底边': 80};        // 假设的按钮边界指标 C
       
        switch(true){
                case this.inButton(x, y, 按钮[0]) :
                        console.log('鼠标移入了【按钮A】');
                        // 接下来要做的事...
                break;
                case this.inButton(x, y, 按钮[1]) :
                        console.log('鼠标移入了【按钮B】');
                        // 接下来要做的事...
                break;
                case this.inButton(x, y, 按钮[2]) :
                        console.log('鼠标移入了【按钮C】');
                        // 接下来要做的事...
                break;
                default:
                        console.log('鼠标移出,还原...?');
                        // 接下来要做的事...
                break;
        };
};

Scene_Title.prototype.inButton = function(x,  y, 按钮) {                // <<< 新建
        return x > 按钮.左边 && x < 按钮.右边 && y  > 按钮.顶边 && y < 按钮.底边;
};

[/pre]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部