Egret社区

oppo小游戏异常

2019-6-15 11:55
3193
1银子
public static closePanelById(id: string): void {
                if (this.panelDic[id] && this.panelDic[id].parent) {
                        PanelManager.closePanel(this.panelDic[id]);//------------------------3
                }
        }

        private static idx:number = 0;
        public static closePanel(panel: egret.DisplayObjectContainer): void {
                if (panel && panel.parent) {
                        PanelManager.idx++;
                        egret.log( "关闭界面 ---"+egret.getQualifiedClassName(panel) +"parent ---"+panel.parent);
                        egret.log( "关闭界面 remove前idx---"+PanelManager.idx );
                        panel.parent.removeChild(panel);//-------------------------------------------------1
                        egret.log( "关闭界面 remove后idx---"+PanelManager.idx );
                        egret.log( "移除界面 ---"+egret.getQualifiedClassName(panel) + " --- 界面parent"+panel.parent );
        }

protected removeListener(): void {
                super.removeListener();

                console.log( "副本 --- 一键领取 ---舞台移除 parent"+this.parent );

                this.lqBtn.removeEventListener(ACommonButton.BUTTON_TWEEN_OVER, this.touchBtnFun, this);

                CopyCC.newYjlqFlag = false;

                PanelManager.closePanelById(ClientMessageType.OPEN_COPY_NORMAL_LIST);//----------------------2
        }


逻辑是这样的:界面A关闭时同时也关闭界面B,也就是1处移除界面,然后监听removefromstage事件,来到了removeListener函数,这里2处调用了3又去执行1所在的函数,但是是关闭的界面B而不是界面A。这段代码在平时可以正常运行,但是发布成oppo小游戏后,就出问题了,1处后面的输出语句没输出到,并且界面A也没被移除,最后我们将2处改成延时执行才恢复正常。

另外还有各种界面异常估计也跟这个有关。求解决

分享到 :
0 人收藏

3 个回复

倒序浏览
acongdps  登堂入室 | 2019-6-26 11:42:10
已解决,就是声音问题引起的,听官方说5.2.22版本提供了对OPPO的支持,不知道是不是解决这个问题的。反正我采用将声音播放延迟的方法处理了。
acongdps  登堂入室 | 2019-6-17 10:17:22
播放声音有时候eTypeError: Cannot set property 'autoplay' of null
animuse  登堂入室 | 2019-7-8 20:45:02
您好,请问是使用setTimeout来延迟声音播放吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部