Egret社区
产品 Egret Engine 版本 3.1.3
复现概率 100% 平台 Mac OS 10.11.4
复现步骤 如上所诉。有一次是用wing自带调试器,运行了一段时间,打开mac的活动监视器就卡主了。
问题描述 在游戏中,创建了一个bitmap图片,在定时器中每隔10毫秒旋转一个角度,一直没有问题,后来在创建图片位置同时设置了这个图片的filter信息,不管是chrome还是wing自带的调制器,运行几分钟后mac电脑肯定会报内存占满,把所有进程全的停掉了。
错误代码 // init mountaion
// let txtrBg: egret.Texture = RES.getRes("game_bg_json.game_mountain");
let txtrBg: egret.Texture = RES.getRes("game_bg_json.game_mountain_white");
this.m_bgMountain = new egret.Bitmap(txtrBg);
this.m_bgMountain.anchorOffsetX = this.m_bgMountain.width / 2;
this.m_bgMountain.anchorOffsetY = this.m_bgMountain.height / 2;
this.m_bgMountain.x = this.stage.stageWidth / 2;
this.m_bgMountain.y = this.stage.stageHeight;
this.addChildAt(this.m_bgMountain , LAYER_INDEX.LAYER_MOUNTAION);

//test shader code :
// var colorMatrix = [
// 0.3,0.6,0,0,0,
// 0.3,0.6,0,0,0,
// 0.3,0.6,0,0,0,
// 0,0,0,1,0
// ];
var colorMatrix = [
1,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,1,0
];

let colorFilter = new egret.ColorMatrixFilter(colorMatrix);
this.m_bgMountain.filters = [colorFilter];

//init earth stage
this.m_earthView = new Earth();
this.addChildAt(this.m_earthView , LAYER_INDEX.LAYER_IDX_BASE);
BUG截图
本帖最后由 q270274978 于 2016-8-1 19:35 编辑

没法截图mac提示的内存占满。。。。 因为内存占满的时候把其他第三方软件进程都给停了。。。没法给截图 QQ图片20160726114058.jpg 上面给的bug截图是原图,运行时改成了红色渲染。  差不多一首歌的时间。。100%卡死

附件图片是长这样的 QQ图片20160726115122.jpg






83389AD1-B1B4-40DE-839E-3438A01EA2D7.jpg
QQ图片20160726114425.jpg
分享到 :
0 人收藏

5 个回复

倒序浏览
奋发向上的岩哥  斑竹 | 2016-7-27 11:52:32
本帖最后由 yjtx 于 2016-7-27 11:54 编辑

按照你的说法,我这边测试没有问题,麻烦提供下你的demo
q270274978  登堂入室 | 2016-8-1 19:38:16
奋发向上的岩哥 发表于 2016-7-27 11:52
按照你的说法,我这边测试没有问题,麻烦提供下你的demo


enum MUSIC_NAME {
        MUSIC_GOODTIME = 0,
        MUSIC_CALLMEMAYBE,
        MUSIC_MAPS,
        MUSIC_HEREWITHYOU,
        MUSIC_LOVEYOULIKEALOVESONG ,
        MUSIC_UPTOWNFUNCK,
};

class SoundsManager {
        private static m_pThis: SoundsManager = null;
        private m_sound: egret.Sound;
        private m_channel: egret.SoundChannel;

        public static MUSIC_ARRAY: Array<string> = [];

        public constructor() {
                SoundsManager.MUSIC_ARRAY[0] = "resource/sounds/good_time.mp3";
                SoundsManager.MUSIC_ARRAY[1] = "resource/sounds/call_me_maybe.mp3";
                SoundsManager.MUSIC_ARRAY[2] = "resource/sounds/maps.mp3";
                SoundsManager.MUSIC_ARRAY[3] = "resource/sounds/here_with_you.mp3";
                SoundsManager.MUSIC_ARRAY[4] = "resource/sounds/love_you_like_a_love_song.mp3";
                SoundsManager.MUSIC_ARRAY[5] = "resource/sounds/uptown_funck.mp3";
        }

        public static GetInstance(): SoundsManager {
                if (SoundsManager.m_pThis === null ) {
                        SoundsManager.m_pThis = new SoundsManager();
                }
                return SoundsManager.m_pThis;
        }

        public loadSound(music: MUSIC_NAME): void {
                console.log("~~~~~~ load sounds is " + SoundsManager.MUSIC_ARRAY[music]);

                if (this.m_sound) {
                        this.stop();
                        this.m_sound = null;
                }

                this.m_sound = new egret.Sound();
                this.m_sound.addEventListener(egret.Event.COMPLETE, function (e: egret.Event) {
                        this.play();
                } , this);
                this.m_sound.load(SoundsManager.MUSIC_ARRAY[music]);
        }

        public play(): void{
                this.m_channel = this.m_sound.play();
        }

        public stop(): void{
                if (this.m_channel) {
                        this.m_channel.stop();
                        this.m_channel = null;
                }
        }
}
q270274978  登堂入室 | 2016-8-1 19:44:44
奋发向上的岩哥 发表于 2016-7-27 11:52
按照你的说法,我这边测试没有问题,麻烦提供下你的demo

实在找不到咋上传这个ts文件到论坛了  上面帮您贴出来播放的代码,   应该没问题

后来排除了下,描述在原文的最后又一张图片   上面说明了下

也就是在使用滤镜,并且播放一个音乐(qq音乐下的mp3格式直接用)的时候,如果sounds.play不填playe(0,0);而是用sounds.play();   在我的项目里100%会在这个音乐循环播放第二遍时候卡死。

这个描述不知你们能想到什么bug不,我只能排除到这了 ,    如果是一个空项目,将图片滤镜而且不填参数播放的话是肯定没问题的。   我那里写了写逻辑,可能会导致这个情况吧。

现在我用不使用默认参数可以临时解决这个问题~~~~~~   希望这个描述对你分析有帮助~  祝egert更好
奋发向上的岩哥  斑竹 | 2016-8-2 13:32:07
q270274978 发表于 2016-8-1 19:44
实在找不到咋上传这个ts文件到论坛了  上面帮您贴出来播放的代码,   应该没问题

后来排除了下,描述在 ...

@app小王子 ,小王子,你懂得。。
yjtx  官方团队 | 2016-8-2 15:51:48
q270274978 发表于 2016-8-1 19:44
实在找不到咋上传这个ts文件到论坛了  上面帮您贴出来播放的代码,   应该没问题

后来排除了下,描述在 ...

麻烦把 demo 发我 qq 吧,3351874603,多谢~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部