0
我對Flash很陌生,並且第一次發現了laggs問題...自從laggs啓動時,它會拋出一個空引用錯誤,我認爲它們屬於一起。垃圾收集器閃存
我試過使用垃圾收集器,將對象設置爲null並刪除它們...到目前爲止沒有任何工作。請幫助。
//Handler for Collisions
if (active_ball_array[array_counter] != null)
{
//Collision:Magma
if (active_ball.hitTestObject(magma))
{
max_active_balls --;
active_ball.parent.removeChild(active_ball);
active_ball = null;
trace("Ball removed: "+max_active_balls);
}
//Collision:Vertical
if (active_ball.hitTestObject(roof) || active_ball.hitTestObject(p1) || active_ball.hitTestObject(p2) || active_ball.hitTestObject(p3) || active_ball.hitTestObject(p4))
{
if (animation_array[array_counter] == "crack2")
{
max_active_balls --;
active_ball.parent.removeChild(active_ball);
active_ball = null;
trace("Ball removed: "+max_active_balls);
}
else if(animation_array[array_counter] == "crack1")
{animation_array[array_counter]="crack2";}
else
{animation_array[array_counter]="crack1";}
mouse_target_hit_array[array_counter] = true;
ball_flightY_array[array_counter] *= -1;
}
//Collision:Horizontal
if (active_ball.hitTestObject(wall_L) || active_ball.hitTestObject(wall_R))
{
if (animation_array[array_counter] == "crack2")
{
max_active_balls --;
active_ball.parent.removeChild(active_ball);
active_ball = null;
trace("Ball removed: "+max_active_balls);
}
else if(animation_array[array_counter] == "crack1")
{animation_array[array_counter]="crack2";}
else
{animation_array[array_counter]="crack1";}
mouse_target_hit_array[array_counter] = true;
ball_flightX_array[array_counter] *= -1;
}
}//END active_ball Collision Handler
ball_animation(animation_array[array_counter]);
firm_distance_array[array_counter] = true;
array_counter ++;
System.gc();
Laggs是英文我想o.O也許它的「玩家俚語」我不知道。對不起,但你說得對。那麼我已經找到了答案。問題是,每次碰撞發生的碰撞都是1000次,我解決了這個問題。但要知道垃圾收集器是一個默認的幫助也很多,謝謝。 – Fuby