-
Notifications
You must be signed in to change notification settings - Fork 312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
replaceScene する度にメモリが増えてしまう。 #280
Comments
👍 自分の所でも困っていたので超助かりました |
私の所でも問題が解決しました。 NodeクラスがparentNodeを参照出来るので、childNodeのいずれかが参照可能だとSceneも参照可能になり、結局Scene以下のNodeが全て参照可能になってしまう、ということでしょう。 ・Reference 重要な改善だと思いますので、unit testも通りますし、pull requestを書いてはいかがでしょうか。 |
SceneやSceneに追加したオブジェクトが削除されないのは、
|
現在のAPIだとSceneの再利用の為にはスタック構造(pushScene, popScene)があるので、再利用しない場合のメソッド(自動で破棄してくれる)があると便利だと思います。スタックAPIがあるので、恐らく多くのユーザはreplaceSceneはSceneを自動破棄するメソッドだと想像すると思います。 なので、
こうすることでenchant.jsの強みである分かり易さを残しつつ機能を拡張出来ると思いますが、いかがでしょう。 コレクション機能の切り替えやクラスも今後欲しい所ですが、まずは破棄メソッドの追加が一番わかりやすいように思えます。 |
そうですね。 |
replaceSceneの問題は非常に沢山のソースで言及されています。 |
enchant.Scene#removeを追加しました。 |
replaceScene メソッドはこんな感じになりますでしょうか?
|
rtsanさん, luuthanhtuanさん、ありがとうございます。 |
うちで作っているゲームはなぜメモリリークが発生しているのか調査したら、
今のreplaceScene 関数だと、replaceScene する度にメモリが増えてしまう。
新しいシーンをpushする前に、現在のシーンのすべてのchildNodeを取り去らなければならいようです。
The text was updated successfully, but these errors were encountered: