Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone cocos2d:鼠标经过时更改CCMenuItemImage?_Cocos2d Iphone_Mouseover_Ccmenuitem_Ccmenu - Fatal编程技术网

Cocos2d iphone cocos2d:鼠标经过时更改CCMenuItemImage?

Cocos2d iphone cocos2d:鼠标经过时更改CCMenuItemImage?,cocos2d-iphone,mouseover,ccmenuitem,ccmenu,Cocos2d Iphone,Mouseover,Ccmenuitem,Ccmenu,有没有人知道一种简单的方法,可以在鼠标经过某个项目时为其设置动画 我读过这篇文章: 这似乎涵盖了Cocoa Touch,但在我使用OS X时不起作用 cocos2d参考列出了CCMenuItemImage:的这种方法,我是这样使用的: CCMenuItem *beginButtonMenuItem = [CCMenuItemImage itemWithNormalImage:@"BeginButton3.png"

有没有人知道一种简单的方法,可以在鼠标经过某个项目时为其设置动画

我读过这篇文章:

这似乎涵盖了Cocoa Touch,但在我使用OS X时不起作用

cocos2d参考列出了CCMenuItemImage:的这种方法,我是这样使用的:

CCMenuItem *beginButtonMenuItem = [CCMenuItemImage itemWithNormalImage:@"BeginButton3.png" 
                                                     selectedImage:@"BeginButtonSel3.png"
                                                            target:self
                                                        selector:@selector(beginButtonPressed:)];
但是,该菜单项不会在鼠标经过时更改图像,只有在单击时才会响应

CCMenuItem引用具有以下方法:

  • (void)已选中,表示“该项目已选中(未激活)”,类似于“鼠标悬停”
但是没有示例代码

有人能帮助实现这一点吗


谢谢

我发现当鼠标经过
CCMenuItem
时,将任何
CCMenuItem
更改为
选中的
状态非常容易,使其具有悬停效果。首先,确保已设置
[window\uSetAcceptsMouseMovedEvents:YES]

然后将此函数添加到
CCMenu.m
(可能就在
CCMenu
定义之后):


CCMenu实际上没有那么灵活。通常,你最好创建自己的动画按钮类,而不是破解CCMenu的代码。你能简单地描述一下怎么做吗?
- (BOOL) ccMouseMoved:(NSEvent *)event {
  if( ! _visible || ! _enabled)
    return NO;

  CCMenuItem *currentItem = [self itemForMouseEvent:event];
  if(!currentItem) {
    if(_highlightedItem != _selectedItem) {
      [_highlightedItem unselected];
    }
    [_highlightedItem release];
    _highlightedItem = nil;
    return NO;
  }

  if (currentItem != _highlightedItem) {
    [_highlightedItem unselected];
    _highlightedItem = currentItem;
    [_highlightedItem retain];
    [_highlightedItem selected];
  }

  return YES;
}