★Flash 3D【 Papervision3D 2.0 】情報交換★ (154レス)
上下前次1-新
抽出解除 レス栞
44(7): 2009/03/19(木)21:31 ID:sOf7DsqH(1) AAS
マテリアルをつけてない素のCubeを出したり消したりだとどーよ?
47(2): 41 2009/03/20(金)00:18 ID:nPh+mKh4(1/2) AAS
>>44
返信がりがとうございます
自分の説明不足でしたが、Cube作成→トゥイーン→消去は、作った一つのCubeを出したり消したりのサイクルではなく、
新たにCubeを作り出してトゥイーン後破壊し、また新たに別のcubeを作りトゥイーンさせ破壊・・・というTimerを使った繰り返しの処理なんです
var timer:Timer = new Timer( 600 );
timer.addEventListener( TimerEvent.TIMER, timerFunc );
timer.start();
省11
50(2): 44 2009/03/20(金)20:37 ID:lXny2v1Y(1/4) AAS
>>45 すまん、寝ぼけてた
オレも前からプリミティブの解放はよくわかってなかったんで調べ中。
まずは単純なplaneで
plane = new plane();
myScene.addChild(plane);
って感じで10個登録してから、これを解放してみる。
mySceneに含まれているプリミティブの個数を調べようと
省15
57(1): 44 2009/03/21(土)10:06 ID:fKmdslcf(3/5) AAS
>>41と>>47について、
> プレビュー中は使用量のグラフがずっと上がりっぱなしの状態でした、
っていうのは、ずっとグラフが上がり続けるって感じ?
それとも上がったり下がったりを繰り返しつつも、徐々に最大値が上がっていく感じ?
手元の環境だと、Cube生成すらしてないSWFを作ってプレビューするだけでも
メモリ使用量が上がったり下がったりを繰り返しつつも、徐々に最大値が上がってくんだよね。
一応、こっちで>>41と>>47をテストしてみたら、ずっと上がり続けるってことはなくて、
省1
59: 44 2009/03/21(土)12:02 ID:fKmdslcf(4/5) AAS
あと、>>49の
> var mat:MaterialObject3D;
> for each(mat in materials){
> trace("test2");
> mat.unregisterObject(this);
これは機能してないね。
materialsはDictionaryを持つクラスだけど、クラスに対してfor eachしても
省9
62(1): 44 2009/03/22(日)11:00 ID:PCij10Uc(1/3) AAS
最低限必要なだけのコードだけどCubeの生成と削除。削除はかなり手抜きだけど
これで10分ほど放置しても30fps。メモリは増減しつつ微妙に増えてるけど。
package {
import 略;
public class Main extends MovieClip {
public var viewport :Viewport3D;
public var scene :Scene3D;
省21
63(1): 44 2009/03/22(日)11:01 ID:PCij10Uc(2/3) AAS
public function animEnd(cube:Cube):void {
scene.removeChild(cube);
cube = null;
}
public function init3D():void {
viewport = new Viewport3D(0, 0, true, true);
addChild( viewport );
省13
65(1): 44 2009/03/22(日)16:26 ID:PCij10Uc(3/3) AAS
や、厳密にはCubeとMaterialは削除をしっかりしないとダメだと思いますよ。
でも削除しなくてもメモリが増えっぱなしとかFPSが低下していくようなことには
ならないという意味でのサンプルです。
厳密な削除方法は結局、よくわからないけどね。(てかAS3の削除処理は面倒すぐる)
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.008s