new DoTweenerでメモリリーク
Progressionで作業中、new DoTweenerのループを作ってSWFProfilerでチェックしていたらメモリがどんどん増えていってしまう。簡略化してるけど要はこんなことをしていました。tween1→tween2→tween1……とループします。
private function tween1():void {
new SerialList(null,
new DoTweener(ore, {
x:500,
time:1
}),
new Func(tween2)
).execute();
}
private function tween2():void {
new SerialList(null,
new DoTweener(ore, {
x:0,
time:1
}),
new Func(tween1)
).execute();
}
解決策は以下のページにありました。
Progressionで起きたメモリリーク
こちらで書いておられる通り、DoTweenerでの記述をTweenerに直してみたら改善されました。
Tweenerでの記述はこんなんになりました。
private function tween1():void {
Tweener.addTween(ore, {
x:500,
time:1
onComplete:tween2
});
}
private function tween2():void {
Tweener.addTween(ore, {
x:0,
time:1
onComplete:tween1
});
}
とりあえずこれでよしとする。
Progressionの次のメジャーアップではメモリ関連の対策に重点が置かれるらしいのでそちらに超期待。
そもそもTweenerのループってもっとンマいやり方あるかも。

