free4machine 会员 PM这个用户
您好,
我想制作一个示例动画:
屏幕底部有一个按钮,按下此按钮时会出现一个小菜单。 小菜单底部有一个图标,按下此图标后,小菜单将消失。
按钮,小菜单,图标,都是CCMenuItemImage的实例。
问题:按下图标时,小菜单不会消失。似乎图标没有响应触摸事件。
任何建议或帮助将不胜感激
抱歉我的英语很差。
这是代码:
CCMenuItemImage *bg = [CCMenuItemImage itemFromNormalImage:@"b1.png" selectedImage:@"b2.png" ];
CCMenuItemImage *button = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button2.png" target: self selector:@selector(showSideMenu:)];
CCMenuItemImage *sideMenu = [CCMenuItemImage itemFromNormalImage:@"s1.png" selectedImage:@"s2.png" ];
CCMenuItemImage *backbutton = [CCMenuItemImage itemFromNormalImage:@"backbutton.png" selectedImage:@"backbutton2. png" target:self selector:@selector(hideSideMenu:)];
[ sideMenu addChild: backbutton ];
CCMenu *menu = [ CCMenu menuWithItems: bg,button, sideMenu, nil ];
[ self addChild: menu];
showSideMenu和hideSideMenu做的是使用runAction使sideMenu出现和消失。
感谢。
答案 0 :(得分:1)
根据代码,我看到的唯一问题是backButton没有添加为菜单的子代。只有bg,button和sideMenu在参数列表中。通过将其添加为bg的子级,它不会触发它自己的选择器,而是bg的。由于bg没有任何定义,因此没有任何反应。最简单的解决方法是将后退按钮添加到列表中。您的代码将如下所示:
CCMenuItemImage *bg = [CCMenuItemImage itemFromNormalImage:@"b1.png" selectedImage:@"b2.png" ];
CCMenuItemImage *button = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button2.png" target: self selector:@selector(showSideMenu:)];
CCMenuItemImage *sideMenu = [CCMenuItemImage itemFromNormalImage:@"s1.png" selectedImage:@"s2.png" ];
CCMenuItemImage *backbutton = [CCMenuItemImage itemFromNormalImage:@"backbutton.png" selectedImage:@"backbutton2. png" target:self selector:@selector(hideSideMenu:)];
CCMenu *menu = [ CCMenu menuWithItems: bg,button, sideMenu, backbutton, nil ];
[ self addChild: menu];
如果您希望每个按钮相对于菜单定位,只需设置它们的位置属性。