http://two-man.co.kr/sourceRoom/04/External_Gallery022/gallery.htm
요 링크에 있는 플래시파일을 수정해야하는데.. 제대로 작동 되는데
썸네일이 이미지 갯수만큼 보여지는거를 -> 3개만 보이게 ( 직전 이미지, 현재 보고있는거, 다음 이미지)
고쳐야 하는데... 액션스크립트 잘하는 횽들 한번 보시고 답변 좀 부탁드릴께요 ㅠㅠ
대충, 이런저런 변수들 고쳐가면서 주석은 살짝 달아놨는데...
썸네일 3개로 줄이는거는 도무지 삽질로 변수 조금씩 바꿔봐도 안되네요
부탁 좀 드립니다!! 굽신굽신 (_ _)
소스코드
---------------------------------------------------------------------------
_global.numOfPhoto = 8;
_global.numofThum = 3;
// 이미지 개수
_global.current = 1;
// 현재 보이는 이미지 번호
url = \"\";
gap = 35;
// 버튼 가로 간격, 주의! 왼쪽 이미지 시작점부터 계산됨
leftMargin = 450;
// 버튼 왼쪽 간격
topMargin = 300;
// 버튼 위쪽 간격;
screen.loadMovie(url+\"image/big/image\"+current+\".jpg\");
for (var i = 1; i<=numOfPhoto; i++) {
mc = btnSet.attachMovie(\"btn\", \"btn\"+i, i);
mc._x = (i-1)*gap; // 썸네일 왼쪽 간격???
mc._y = 0; // 썸네일은 수평으로 이동
mc.point.loadMovie(url+\"image/small/image\"+i+\".jpg\");
mc.onRelease = loadHye2; // 썸네일 누르면 이미지 이동시키기
nextBtn.onRelease = loadHye1; // 이미지 누르면 다음으로 이동시키기
}
that = this;
// 썸네일 눌렀을 때 호출되는 함수
function loadHye2() {
if (current != Number(this._name.substr(3)))
{
_global.current = Number(this._name.substr(3));
screen.loadMovie(url+\"image/big/image\"+current+\".jpg\");
that.onEnterFrame = function()
{
var temp1 = screen.getBytesLoaded();
var temp2 = screen.getBytesTotal();
if (temp1 == temp2 && temp1>100)
{
screen._alpha = 0;
screen.onEnterFrame = function()
{
this._alpha += (110-this._alpha)/10;
if (this._alpha>100)
{delete this.onEnterFrame;}
};
delete this.onEnterFrame;
}
// if (temp1 == temp2 && temp1>100)
};
// that.onEnterFrame = function()
}
}// if (current != Number(this._name.substr(3)))
function loadHye1() {
if (current != numOfPhoto) {
_global.current++;
} else {
_global.current = 1;
}
screen.loadMovie(url+\"image/big/image\"+current+\".jpg\");
that.onEnterFrame = function() {
var temp1 = screen.getBytesLoaded();
var temp2 = screen.getBytesTotal();
if (temp1 == temp2 && temp1>100) {
screen._alpha = 0;
screen.onEnterFrame = function() {
this._alpha += (110-this._alpha)/10;
if (this._alpha>100) {
delete this.onEnterFrame;
}
};
delete this.onEnterFrame;
}
};
}
// 썸네일 위치 조정
btnSet.onEnterFrame = function() {
this._x += (leftMargin-gap*(current-1)-this._x)/15;
this._y = topMargin;
};
그래서 소스코드는?
아, 죄송 (_ _) 본문에 소스코드 적고 첨부파일로도 올렸어요
첨부파일은 오른쪽 맨위에 올려놨구요.
for (var i = 1; i<=numOfPhoto; i++) { // <--- 여기가 로드하는 부분이고
current 가 현제 페이지 일텐데. 일단 뿌리는건 for문 조금 손보면 되는데 문제는 큰거다시그릴때 작은것도 다시그려야돼서 \'ㅅ\';
for (var i = (current-1<1?1:current-1); i<=(numOfPhoto<current+1?numOfPhoto:current+1); i++)
일단 포문고치고 함수2를 함수1안에 한번 더 넣어야겠네
늅늅횽님 마지막 댓글 코드중에 중간에 ?? 섞여있어갖고.. 요거 어떻게 고쳐쓰면 될까요? 댓글 감사합니다 ㅠㅠ 꾸벅 (_ _)
아 미안 가독성 떨어지지? 쪼개서 써줄꼐
var prevPhoto = current-1; var nextPhoto = current+1;
if ( prevPhoto < 1 ) { prevPhoto = 1;}
if ( nextPhoto > numOfPhoto ) { nextPhoto = numOfPhoto;}
for (var i = prevPhoto; i<=nextPhoto; i++)
감사감사 ㅠㅠ 늅늅형 혹시 CGV 자주 가고 KTF 쓰면 제가 콤보세트 쿠폰 보내드릴께요 ㅠㅠ 메일주소좀..
말씀해주신데로 고쳐서 썸네일 3개만 나오는건 해결되었는데 썸네일이 3개로 되니까 4,5,6번 이미지가 안나오네요 ㅠ
함수2를 함수1 안에다가 다시 넣었는데도 마찬가지구요.. 이부분은 어떻게 해야지 4,5,6번 이미지 보일까요?
아, 참. 그리고 썸네일도.. 1,2,3 // 2,3,4 // 3,4,5 이런식으로 보여야하는데 1,2,3 요렇게 3장만 왔다갔다 하네요 ㅠㅠ
답변 해주셔서 너무 감사하지만 한번만 더 답변 부탁드립니다. 제 메일주소는 kimsk53@naver.com 인데 욜로 답변주셔도 좋구요 부탁드립니다 (_ _)
후.. 감 아직 못잡았네.
지금소스에서는 123번 그리는게 로딩될때 한번이지? 이걸 123 -> 234 -> 345식으로 가게할려면 클릭이벤트할때 작은 이미지들을 다시그려야 바뀌겠지?
주석단거보니 펑션 if for문 다 이해했고 어떻게 돌아가는지 파악돼는 정도잖아 이정도면 힌트 충분한거같으니 머리한번 더 굴려봐 어떻게하면 될까
아 고마워요 늅늅횽 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 이래저래 삽질해서.. 3장씩 로딩되는건 해결했는데.. 마지막 난관은 3장씩 로딩은 되지만, 이전에 로딩했던 이미지들은 안지워져갖고 결국엔 썸네일이 8장이 다 생겨버리네요
처음에 썸네일 3장 생성되고, 그뒤로 클릭할 때마다 다음 이미지로 썸네일 추가는 되는데 이전 썸네일 역시 1장 지우는건 어찌해야할까요? 마지막 질문 답변 좀 부탁드려요 (_ _)
123 -> 1234 -> 12345 요렇게밖에 안되네요.. loadMovie 반대로 removeMovie deleteMovie 요런 컨퍼런스 검색해봐도 안나오구요