>>50続き
いきなり間違えた。
_childrenByNameに罪はなかった。_childrenByNameはDictionaryなのに配列と
同じようにアクセスしてた。
Scene3D、突き詰めるとDisplayObjectContainer3Dに含まれているプリミティブを
取得するには、DisplayObjectContainer3D.childrenを使うとDictionaryとして取得できる。
keyは
name = name || child.name || String( child.id );
として設定される。valueはプリミティブっぽい。
DisplayObjectContainer3Dに含まれるプリミティブを全消しするには
var childList:Object = myScene.children;
for (var key:String in childList) {
var value = childList[key];
myScene.removeChild(value);
}
ってな感じでいいのかなと。
removeChild()の引数はDisplayObject3D。
removeChildByName()ってのもあって、これはDisplayObject3Dの名前?(toString()したもの?)で
削除できるけど、処理内容をみると重そう。
これらの処理でScene3dからプリミティブは消えるけど、プリミティブ自体が
消えた訳じゃないはず。
SWFProfilerで観察してるとGCが効いて増減しつつも、徐々にメモリ使用量が増えてくし。
続く、かもしれない
★Flash 3D【 Papervision3D 2.0 】情報交換★
2009/03/20(金) 21:24:05ID:lXny2v1Y
レスを投稿する
