launcher界面按中间键直接进入主菜单实现方法

进入mainmenupush page。因为架构上idlemainmenu是在同一个VfxMainScr下的不同page

而默认的设计就是只有在shortcut bar上点击最右边的icon才能够launch mainmenu

目前的麻烦点应该是director不能直接访问到shortcut barCP.

这种情况有两种办法:

1.  增加public成员方法,开一路接口下去访问VappLauncherCosmosMmShortcutBar::pushMainmenuPage

算下里,directorshortcut barcosmos mm shortcut bar这三层都要开新的public接口才行。

也就是需要在这3个类VappLauncherCosmosDirector 、VappLauncherCosmosShortcutBar VappLauncherCosmosMmShortcutBar里面添加public的方法,使得可以访问到PushMainmenuPage.

这样改简单,不过在代码封装性上看起来有些丑陋。

2.  pushMainmenuPage里的内容捞出来,放到director类里新定义的一个成员函数内。

不过要注意的是,里面的m_mainmenu的与VappLauncherCosmosMmShortcutBarm_mainmenu要统一起来。所以可能要借助全局变量。

并且还要新建一个signalconnectVappLauncherCosmosDirector::onMainMenuLaunched,在按下key的时候postEmit出去。

2种方法稍微复杂点,但是由于有两个地方可以launch mainmenu,所以这两处要sync好。走进来都要先check mainmenu对象是否已存在。

因此可能要借助全局变量来实现,这需要改动到类的一些code,改起来要复杂些。

 

不过根据以上思路修改后又出现了一个新的问题:增加按back键进入主菜单,快速连续按back键后返回idle界面触屏无作用,导致触屏失效了。于是我们需要如下修改才能解决问题。

void VappLauncherPage::onEntered()
{
    VfxPage::onEntered();

    if (m_launcher)
    {
        m_launcher->entered();
    }
#ifdef __CHERRY_CUST__	
	setIsUnhittable(VFX_FALSE);
#endif
}


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值