메뉴 건너뛰기

XE : Xpress Engine




웹디자인 강의


위에가 예제입니다; 쿨럭;

tanmanu_1.gif

on (rollOver) {                             // rollOver 이벤트(무비위에 마우스를 올리는 동안)가 발생할때,
        this.swapDepths(3);    // 무비클립의 Depth 값을 변경, 맨 위에 위치하게 하는겁니다;
        f_xscale *= 2;
        f_yscale *= 2;             // 마우스를 누르는 순간에 메뉴의 크기를 크게 하기 위해 변수값을 2배수로
                                                    곱합니다. 메뉴의 크기를 조절하기 위해 사용하는거랍니다;
}
on (rollOut) {                             // rollOut 이벤트(롤 아웃 되있을 때;;;;)가 발생할때,
        this.swapDepths(1);   // 메뉴를 다른 메뉴보다 아래에 배치하고,,
        f_xscale = 100;
        f_yscale = 100;         // 마우스를 때는 순간 원래 크기로 돌아갑니다.
}

--------복사용--------
on (rollOver) {
        this.swapDepths(3);
        f_xscale *= 2;
        f_yscale *= 2;
}
on (rollOut) {
        this.swapDepths(1);
        f_xscale = 100;
        f_yscale = 100;
}
----------------------
tanmanu_2_1.gif

onClipEvent (load) {                // 로드 됬을 때!!
        f_xscale = 100;
        f_yscale = 100;        // 초기 메뉴의 스케일값을 100으로 잡아주고,,
        f_x = 0;
        f_y = 0;                  // 탄성력을 주기 위한 변수를 줍니다, 초기값은 0
        f_mul = 0.7;            // 탄성을 주기위한 변수입니다. 변수 값이 커질수록 탄성력 증가!!
        f_ratio = 0.3;           // 메뉴의 크기를 적당한 비율로 변화시키기 위한 변수,
    this._alpha=95;                  // 초기 메뉴의 알파 값을 줍니다;
}
onClipEvent (enterFrame) {    // enterFrame 이벤트가 발생!!
        f_x = f_x*f_mul+(f_xscale-this._xscale)*f_ratio;
                   // f_x는 결국 메뉴의 넓이를 결정해주는 변수인데요, f_x가 0이 되는 순간이 메뉴가 크기 변하는걸 멈추는 순간입니다. 마우스를 올리거나 내리는 순간에 f_xscale 값에 변화가 오고 위 수식에 의해 f_x의 값은 감소, 결국은 마우스 이벤트에 의해 결정된 스케일 값까지 f_x는 f_ration에 의해 서서히 변할 것입니다, 탄성력을 주기위해 f_x*f_mul이란 수식을 사용한거고요, 이 수식에 의해 f_x 값이 순간 엄청 커져서 뒤에 나오는 식을 넘어버리는 경우가 생기는데, 다시 괄호 안 수식에 의해 f_x는 음수를 갖고 메뉴는 다시 작아지며 다시 설정된 스케일 값보다 작아지게 되면 또 ㄷㅏ시 수식에 의해 커지게 되는 것이랍니다, 이러한 원리에 의해서 탄성이 생기다가 어느 순간 f_x값이 0에 가까워 진다면 메뉴의 크기가 일정한 것처럼 보이게 된답니다.
        f_y = f_y*f_mul+(f_yscale-this._yscale)*f_ratio;
                   // 위 내용과 y스케일인 점빼고는 같아요 '-')/;;

        this._xscale += f_x;  //메뉴의 가로크기를 f_x만큼 추가하여 설정,
        this._yscale += f_y;  //메뉴의 가로크기를 f_y만큼 추가하여 설정,;
}

--------복사용--------
onClipEvent (load) {
        f_xscale = 100;
        f_yscale = 100;
        f_x = 0;
        f_y = 0;
        f_mul = 0.7;
        f_ratio = 0.3;
    this._alpha=95;
}
onClipEvent (enterFrame) {
        f_x = f_x*f_mul+(f_xscale-this._xscale)*f_ratio;
        f_y = f_y*f_mul+(f_yscale-this._yscale)*f_ratio;

        this._xscale += f_x;
        this._yscale += f_y;
}
----------------------
tanmanu_2_2.gif

붙임 1. 소스 첨부했습니다.