lufy's legend

标题: 重新对dom进行LInit时,FPS翻倍 [打印本页]

作者: aaron    时间: 2017-7-11 23:44
标题: 重新对dom进行LInit时,FPS翻倍
DEMO
http://jsbin.com/cawujoxebo/1/edit

添加一个DOM节点并初始化lufylegend,然后移出这个DOM节点,再添加并初始化后FPS会翻倍,貌似是我移出节点的时候,之前lufylegend初始化的对象没有进行移出。

作者: yorhomwang    时间: 2017-7-12 16:43
是这样的。在移除DOM节点前,删除所有对象就可以了。
作者: aaron    时间: 2017-7-12 17:28
本帖最后由 aaron 于 2017-7-12 17:31 编辑
yorhomwang 发表于 2017-7-12 16:43
是这样的。在移除DOM节点前,删除所有对象就可以了。


remove方法进行移除吗?
移除之后还是会出现这个问题
demo
http://jsbin.com/butewozamo/1/edit?html,output
作者: lufy    时间: 2017-7-13 10:26
aaron 发表于 2017-7-12 17:28
remove方法进行移除吗?
移除之后还是会出现这个问题
demo

这是引擎代码
https://github.com/lufylegend/lu ... ction.js#L447-#L484

LInit每调用一次,就会多加一个setInterval,所以FPS加倍
也就是说初始化只能执行一次,
一定要多次,那可以自己清理一下setInterval再重新初始化,
提示:LGlobal.frameRate = setInterval

不过,完全没必要移除DOM吧,只是把问题复杂化而已
作者: yorhomwang    时间: 2017-7-13 10:42
aaron 发表于 2017-7-12 17:28
remove方法进行移除吗?
移除之后还是会出现这个问题
demo

尴尬……你说的是FPS,我想成了对象个数
作者: lufy    时间: 2017-7-13 11:07
yorhomwang 发表于 2017-7-13 10:42
尴尬……你说的是FPS,我想成了对象个数

虽然答非所问,但是说的并没有错,对象也必须清空,已经加到引擎中的对象不会因为重新初始化canvas就没有了




欢迎光临 lufy's legend (http://lufylegend.com/forum/) Powered by Discuz! X2.5