웹디자인 강의
Flash _lockroot 에 대해서
2004.03.30 16:50
_lockroot 는 플래시 플레이어 7에서만 지원되는 액션입니다.
이 액션은 loadMovie로 불러온 무비 클립의 _root 로 참조되는 속성을 로드된 무비의 _root 를 참조하려는 플래시의 속성을 막아주는 역할을 하는 것입니다. 예를 들어 mc1.swf ,mc2.swf 이런 두개의 플래시 무비가 있다고 합니다.
mc1.swf에다가 mc2.swf를 레벨 1로 불러오려고 합니다. 그럼
loadMovieNum("mc2.swf",1);
이렇게 써주면 됩니다. 그런데 문제는 mc2.swf에 들어있는 액션이 문제입니다.
만약 mc2.swf 무비에서 _root 라는 액션이 사용 되었을 경우 mc2.swf 안에서의 _root를 참조해야 정상적으로 작동 됩니다.
그러나 이렇게 로드무비로 불러오면 엉뚱하게 불려진 무비의 _root 를 참조 하므로 매우 엉뚱한 결과를 초래하게 됩니다.
이러한 현상을 막기 위해 상대경로방식을 사용합니다만
_lockroot = true;
이 한줄의 액션만 써주면 ok! 입니다
그러면 이러한 현상을 막을수 있습니다.
한가지 팁이 되었길 바랍니다.
이 액션은 loadMovie로 불러온 무비 클립의 _root 로 참조되는 속성을 로드된 무비의 _root 를 참조하려는 플래시의 속성을 막아주는 역할을 하는 것입니다. 예를 들어 mc1.swf ,mc2.swf 이런 두개의 플래시 무비가 있다고 합니다.
mc1.swf에다가 mc2.swf를 레벨 1로 불러오려고 합니다. 그럼
loadMovieNum("mc2.swf",1);
이렇게 써주면 됩니다. 그런데 문제는 mc2.swf에 들어있는 액션이 문제입니다.
만약 mc2.swf 무비에서 _root 라는 액션이 사용 되었을 경우 mc2.swf 안에서의 _root를 참조해야 정상적으로 작동 됩니다.
그러나 이렇게 로드무비로 불러오면 엉뚱하게 불려진 무비의 _root 를 참조 하므로 매우 엉뚱한 결과를 초래하게 됩니다.
이러한 현상을 막기 위해 상대경로방식을 사용합니다만
_lockroot = true;
이 한줄의 액션만 써주면 ok! 입니다
그러면 이러한 현상을 막을수 있습니다.
한가지 팁이 되었길 바랍니다.
댓글 3
-
세나^.^
2004.04.02 11:49
-
미톨
2004.04.08 13:29
흠 한번 들렸다가 보게 되었는데 저런것이 있었군요 ^^;
세나^.^ 님 액션스크립트 사전을 찾아 보시면 대충 설명이 나와 있습니다.
예를 들어서
불러 들여 져야 할 무비 sub.swf
_root.onEnterFrame = function(){
this.coin._x +=2;
}
이런 루트를 참조하는 액션이 들어 있다고 가정 하면
그 무비를 불러 들이는 무비 rock.swf
_root.screen._lockroot = true;
_root.screen.loadMovie("./sub.swf");
이런식으로 액션을 작성해 주면 제대로 돌아 가는군요
액션스크립 사전에서 예제 처럼
위에 처럼 screen이란 객체가 있을 경우
그 안에
onClipEvent (load)
{
this._lockroot = true;
}
이런식으로 직접 집어 넣어줘도 잘 돌아가는듯 보이네요 -
김창현
2004.10.16 02:37
차후에 재사용측면에서 보신다면 가급적 _root는 피하시는게 좋습니다.
좋은팁입니다 ^^;