묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
플래시 액션 스크립트.. 갤러리 소스에 대한 질문입니다..
2004.11.04 13:32
num = 4;
// 이미지 개수
for (i=1; i<=num; i++) {
mc = this.attachMovie("btn", i, i);
// 이미지 복사
mc._xscale = mc._yscale=14;
// 이미지 초기 크기를 10%로
mc._x = ((i-4)%4)*0+60+(Math.ceil(i/4)-1)*20;
mc._y = (Math.ceil(i/1)-1)*80+150;
// 이미지 초기 위치 지정(4는 가로 한줄에 4개의 이미지를 의미합니다.)
mc.defaultX = mc._x;
mc.defaultY = mc._y;
// 이미지가 제자리로 돌아가기 위한 기본위치 기억
mc.gotoAndStop(i);
// 이미지 선택
mc.active = 0;
// 이미지의 활성화 상태는 초기 비활성화
mc.onRelease = function() {
///////////////////////////////////////////////////////////////////////////////////////
_root["ex_mc"+this._name].gotoAndPlay(1)
///////////////////////////////////////////////////////////////////////////////////////
// 이미지 클릭시 콜백함수
this.swapDepths(1000);
// 클릭된 이미지는 최상위에 보이도록 depth를 조절
this.temp = 0;
// cpu 점유율을 낮추기 위한 카운터
this.target = 30;
// 이미지 초기 목적 사이즈
this.onEnterFrame = function() {
if (!this.active) {
// 이미지가 커지는 경우
this.temp++;
this._xscale += (this.target-this._xscale)/4;
this._yscale = this._xscale;
// 이미지 사이즈 크게
this._x += (310-this._x)/2;
this._y += (270-this._y)/2;
// 이미지의 중심 이동
if (Math.abs(30-this._xscale)<1) {
this._xscale = this._yscale=105;
this.target = 100;
}
if (this.temp>20) {
this.active = 1;
this.flash.gotoAndStop(1);
delete this.onEnterFrame;
}
} else {
// 이미지가 작아지는 경우
this.target = 13;
this.temp++;
this._xscale += (this.target-this._xscale)/4;
this._yscale = this._xscale;
// 이미지 사이즈 작게
this._x += (this.defaultX-this._x)/4;
this._y += (this.defaultY-this._y)/4;
// 이미지의 중심이동(초기화)
if (this.temp>15) {
this.active = 0;
delete this.onEnterFrame;
}
}
};
};
// 이미지 롤오버시 플래시 효과주기
mc.onRollOver = function() {
if (!this.active) {
this.flash.gotoAndPlay(2);
}
};
// 이미지 롤아웃시 플래시 효과중지
mc.onRollOut = function() {
this.flash.gotoAndStop(1);
};
// 이미지 드래그 아웃시 플래시 효과중지
mc.onDragOut = function() {
this.flash.gotoAndStop(1);
};
}
이게 갤러리에 사용하는 소스인데요..
그리 그림을 클릭하면 그림이 커지고 글상자가 나오는 소스 인데요
그림이 커지면 커진그림을 다시 클릭해야만 그림이 작아지면서 원래 상태로 돌아갑니다..
예를 들어 1번그림을 클릭해서 보고 다시 그 그림을 닫아야만 하는데요.. 안그러고 2번 그림을 눌러버리면 1번그림 위에 2번그림이 쌓이게 됩니다..
이렇게 안되고.. 1번그림을 보고 있다가도 2번그림을 누르면 1번그림은 원상태로 돌아가도록 하려면 어떻게 해야 하는지 알고 싶습니다.. 스크립트 고수님들의 도움이 필요합니다...
// 이미지 개수
for (i=1; i<=num; i++) {
mc = this.attachMovie("btn", i, i);
// 이미지 복사
mc._xscale = mc._yscale=14;
// 이미지 초기 크기를 10%로
mc._x = ((i-4)%4)*0+60+(Math.ceil(i/4)-1)*20;
mc._y = (Math.ceil(i/1)-1)*80+150;
// 이미지 초기 위치 지정(4는 가로 한줄에 4개의 이미지를 의미합니다.)
mc.defaultX = mc._x;
mc.defaultY = mc._y;
// 이미지가 제자리로 돌아가기 위한 기본위치 기억
mc.gotoAndStop(i);
// 이미지 선택
mc.active = 0;
// 이미지의 활성화 상태는 초기 비활성화
mc.onRelease = function() {
///////////////////////////////////////////////////////////////////////////////////////
_root["ex_mc"+this._name].gotoAndPlay(1)
///////////////////////////////////////////////////////////////////////////////////////
// 이미지 클릭시 콜백함수
this.swapDepths(1000);
// 클릭된 이미지는 최상위에 보이도록 depth를 조절
this.temp = 0;
// cpu 점유율을 낮추기 위한 카운터
this.target = 30;
// 이미지 초기 목적 사이즈
this.onEnterFrame = function() {
if (!this.active) {
// 이미지가 커지는 경우
this.temp++;
this._xscale += (this.target-this._xscale)/4;
this._yscale = this._xscale;
// 이미지 사이즈 크게
this._x += (310-this._x)/2;
this._y += (270-this._y)/2;
// 이미지의 중심 이동
if (Math.abs(30-this._xscale)<1) {
this._xscale = this._yscale=105;
this.target = 100;
}
if (this.temp>20) {
this.active = 1;
this.flash.gotoAndStop(1);
delete this.onEnterFrame;
}
} else {
// 이미지가 작아지는 경우
this.target = 13;
this.temp++;
this._xscale += (this.target-this._xscale)/4;
this._yscale = this._xscale;
// 이미지 사이즈 작게
this._x += (this.defaultX-this._x)/4;
this._y += (this.defaultY-this._y)/4;
// 이미지의 중심이동(초기화)
if (this.temp>15) {
this.active = 0;
delete this.onEnterFrame;
}
}
};
};
// 이미지 롤오버시 플래시 효과주기
mc.onRollOver = function() {
if (!this.active) {
this.flash.gotoAndPlay(2);
}
};
// 이미지 롤아웃시 플래시 효과중지
mc.onRollOut = function() {
this.flash.gotoAndStop(1);
};
// 이미지 드래그 아웃시 플래시 효과중지
mc.onDragOut = function() {
this.flash.gotoAndStop(1);
};
}
이게 갤러리에 사용하는 소스인데요..
그리 그림을 클릭하면 그림이 커지고 글상자가 나오는 소스 인데요
그림이 커지면 커진그림을 다시 클릭해야만 그림이 작아지면서 원래 상태로 돌아갑니다..
예를 들어 1번그림을 클릭해서 보고 다시 그 그림을 닫아야만 하는데요.. 안그러고 2번 그림을 눌러버리면 1번그림 위에 2번그림이 쌓이게 됩니다..
이렇게 안되고.. 1번그림을 보고 있다가도 2번그림을 누르면 1번그림은 원상태로 돌아가도록 하려면 어떻게 해야 하는지 알고 싶습니다.. 스크립트 고수님들의 도움이 필요합니다...