0
메뉴가 항상 이고 tweens
이 항상 실행 중이며 사용자가 게임을 시작하고 클릭 할 때 menu.visible = true;
을 추가하면 메뉴가 백그라운드에서 실행되지 않거나 표시가 보이지 않게되고 계속 진행됩니다. 백그라운드에서 실행하고 성능을 저하시킬 수 있습니까?무비 클립을 ".visible"으로 만들면 여전히 AS3 백그라운드에서 실행됩니까?
메뉴가 항상 이고 tweens
이 항상 실행 중이며 사용자가 게임을 시작하고 클릭 할 때 menu.visible = true;
을 추가하면 메뉴가 백그라운드에서 실행되지 않거나 표시가 보이지 않게되고 계속 진행됩니다. 백그라운드에서 실행하고 성능을 저하시킬 수 있습니까?무비 클립을 ".visible"으로 만들면 여전히 AS3 백그라운드에서 실행됩니까?
모든 인스턴스가 GC
에 의해 아직 채워지지 않았거나 메모리에있는 MovieClip
이 재생 중이며 EnterFrame
이벤트를 실행하거나 프레임 스크립트를 실행하는 데 약간의 프로세서 시간이 소요됩니다. 그러나 visible=false
을 설정하거나 stage
에서 제거하여 렌더링을 방지하면 더 많은 리소스를 사용할 수 있습니다.
/**
* Stops all animations in the MovieClip and all its chilrend recursivly
*
* @param target
* @param self stop animation in target or not
* @param isGoToAndStopFirstFrame move all clips to the first frame
*
*/
public static function stopAll(target:DisplayObject, self:Boolean = true, isGoToAndStopFirstFrame:Boolean = false):void
{
if (!target)
return;
var t:int = getTimer();
var targetMovieClip:MovieClip = (target as MovieClip);
if (self && targetMovieClip)
{
if(isGoToAndStopFirstFrame)
{
targetMovieClip.gotoAndStop(1);
}else
{
targetMovieClip.stop();
}
}
//stops all children in DisplayObjectContainer
var targetContainer:DisplayObjectContainer = (target as DisplayObjectContainer);
if(targetContainer)
{
for (var i:int=0; i<targetContainer.numChildren; i++)
{
var child:DisplayObject = targetContainer.getChildAt(i);
if (child)
{
stopAll(child, true, isGoToAndStopFirstFrame);
}
}
}
// stops all states in SimpleButton
var targetSimpleButton:SimpleButton = (target as SimpleButton);
if(targetSimpleButton)
{
stopAll(targetSimpleButton.overState, true, isGoToAndStopFirstFrame);
stopAll(targetSimpleButton.upState, true, isGoToAndStopFirstFrame);
stopAll(targetSimpleButton.downState, true, isGoToAndStopFirstFrame);
stopAll(targetSimpleButton.hitTestState, true, isGoToAndStopFirstFrame);
}
return;
}
이 굉장 :
그리고 작은 보너스, 나는 그것이 도움이되기를 바랍니다의
display list
에서 제거하기 전에 모든 애니메이션을 정지이 유틸리티 메소드를 사용합니다. 모든 정보를 주셔서 감사합니다. 나는 아직도 동영상 클립을 제거함으로써 아무런 아이디어도 얻지 못했습니다. 가비지 콜렉션이 아직 어떻게 작동하는지 또는 구현 방법을 모릅니다. 그러나 이것은 시작처럼 보인다. 그래서 내가해야 할 일은 내 endGame 클래스 안에 이걸 추가하는거야? 아니면 내 메인 클래스에서 시작하겠습니까? 나는 그것을 일으키는 원인이 될지 모르지만 메모리가 일정한 속도로 증가하고 1 분 후에 그냥 느려지므로 메모리 누출이 있는지 확실히 알 수 있습니다. – Nathan중첩 된 타임 라인이있는 복잡한 애니메이션의 유틸리티 메서드입니다. 단일 타임 라인 애니메이션 만있는 경우 (중첩 된 타임 라인이없는 경우) _mc.stop() _을 호출하거나 _visible = false_을 설정하기 전에 호출 할 수 있습니다. – fsbmain
감사합니다. – Nathan