본문 바로가기
플래시(Flash) 강좌

4-19. 검사 자료 제작하기-점수누적, 점수 분류하기

by 리치샘 2016. 7. 1.

제4장 예제를 이용한 애니메이션 만들기

4-19. 검사 자료 제작하기


    이 예제는 아래의 완성된 예제와 같이 문항을 보고 보기 항목에서 자신의 상황에 따른 보기를 고르면 보기에 따라 차등화된 점수가 합산되어 결과를 진단해주도록 되어 있습니다.

    문항은 모두 20개로 되어 있으며, 인터넷 중독 예방센터(http://www.iapc.or.kr)의 진단 프로그램을 참고하였습니다.
    내용은 다음과 같은 것들입니다.

    1. 인터넷을 한번 시작하면 생각했던 것보다 오랜 시간을 인터넷에서 보내게 된다.
    2. 인터넷을 하고 있지 않을 때에도 인터넷에 대한 생각이 자꾸 떠오른다.
    3. 인터넷에 빠져 있다가 다른 사람과의 약속을 어긴 적이 있다.
    4. 인터넷을 하면 스트레스가 모두 해소되는 것 같다.
    5. 주위 사람들이 내가 인터넷을 너무 많이 한다고 지적하다.
    6. 인터넷을 하지 못하면 안절부절못하고 초조해진다.
    7. 실제에서 보다 인터넷에서 만난 사람들을 더 잘 이해하게 된다.
    8. 인터넷 사용 때문에 실생활에서 문제가 생기더라도 인터넷 사용을 그만두지 못한다.
    9. 인터넷 사용을 줄여야한다는 생각이 끊임없이 들곤 한다.
    10. 인터넷을 하느라고 피곤해서 수업시간에 잠을 자기도 한다.
    11. 인터넷 사용으로 건강이 이전보다 나빠진 것 같다.
    12. 인터넷을 하다가 계획한 일들을 제대로 못한 적이 있다.
    13. 다른 할 일이 많을 때에도 인터넷을 사용하게 된다.
    14. 인터넷을 할 때 누군가 방해를 하면 짜증스럽고 화가 난다.
    15. 인터넷이 없다면 내 인생에 재미있는 일이란 없다.
    16. 인터넷을 하고 있으면, 기분이 좋아지고 흥미진진해진다.
    17. 오프라인에서보다 온라인에서 나를 인정해 주는 사람이 더 많다.
    18. 인터넷 사용으로 인해 가족들과 마찰이 있다.
    19. 인터넷에서 알게 된 사람들이 현실에서 아는 사람들보다 나에게 더 잘해준다.
    20. 인터넷을 하고 있지 않을 때에도, 인터넷에서 나오는 소리가 들리고 인터넷을 하는 꿈을 꾼다.

    위의 문항을 그대로 이용한다면 보기의 최고점은 5점, 보기와 배점은 다음과 같습니다.

    1) 늘 그렇다(5점)  2) 자주 그렇다(4점)  3) 보통이다(3점)  4) 별로 그렇지 않다(2점)  5) 전혀 그렇지 않다(1점)


    [생각해보기]

    한 문항씩 반드시 문제를 풀도록 하여야겠습니다. 그렇게 하려면 보기 중 하나를 클릭해야 다음 문제로 넘어가도록 하면 될 것입니다.
    보기에는 각각의 점수를 부여하고, 클릭을 하면 부여된 점수가 누적되어가도록 하여야 할 것입니다.
    문제를 다 풀고 나면 합산 점수를 가지고 진단을 해주도록 해야겠지요?

    [진단 기준 및 내용]
    20~49점(진단1) : 당신은 평균적인 인터넷 사용자입니다. 당신은 가끔씩 너무 오랫동안 인터넷 사용에 시간을 소비한다고걱정할 지 모르지만대체적으로 자신의 인터넷 사용시간을 잘 조절하고 계십니다.
    50~79점(진단 2) : 당신은 인터넷 때문에 일상 생활 가운데서 때때로 혹은 빈번하게 문제를 경험할 가능성이 있습니다. 인터넷 사용시간을 조금 줄이도록 노력해 보세요.
    80~100점(진단 3) : 당신의 인터넷 사용은  당신의 일상 생활에 심각한  문제를 야기할 가능성이 있습니다. 학습(교육활동)상 꼭 필요한 경우가 아니면 인터넷 사용을 줄이도록 하세요.


    진단을 하고는 다시 진단 평가를 해볼 수 있도록 버튼을 달아주고, 시작 부분으로 이동하도록 합니다.

    모두 20개의 문항이 있고 진단 부분(3가지)을 표현하는 3개의 프레임 등 모두 24개 이상의 프레임이 필요합니다.

    예제 파일

    중독성검사_원본.fla


    1-1. 1프레임에 들어갈 액션스크립트(콜백 함수)

    // 무비가 재생되지 않도록 합니다.
    stop();
    // 누적 점수 변수 선언, 초기값은 0
    total = 0;
    // 보기 1번(인스턴스 이름 b1)을 누르면 점수를 5점 누적시켜 주고 다음 문제(다음 프레임)으로 간다. 
    _root.b1.onRelease = function() {
           total = total + 5;
               nextFrame();
    };

    // 이하의 내용은 보기 1번과 같은 개념입니다.
    _root.b2.onRelease = function() {
           total = total + 4;
               nextFrame();
    };

    _root.b3.onRelease = function() {
           total = total + 3;
               nextFrame();
    };

    _root.b4.onRelease = function() {
           total = total + 2;
               nextFrame();
    };

    _root.b5.onRelease = function() {
           total = total + 1;
               nextFrame();
    };


    1-2. 누적 점수로 분기(진단)하기

    20번 문항이 들어 있는 20프레임에서 보기를 클릭하면 21프레임으로 가게 됩니다.
    따라서 21프레임에는 보기를 없애 버리고, 키프레임에 if 문을 사용해야 분기가 되도록 합니다.
    즉, 만약 누적 점수가 20~49점이면 23프레임으로 가고,
    50~79점이면 24프레임으로, 80~100점이면 25프레임으로 가도록 하면 될 것입니다.

    if (total >= 20 && total <=49){
    gotoAndStop(23);
    }

    if (total >= 50 && total <=79){
    gotoAndStop(24);
    }

    if (total >= 80 && total <=100){
    gotoAndStop(25);
    }

    사실 이 21프레임은 무비를 실행하면 순간적으로 지나가 버리기 때문에 사용자가 눈치를 거의 채지 못합니다.


    1-3. 다시 검사

    23, 24, 25프레임에는 각각 진단 문장이 있습니다. 아울러 점수 표시와 함께 [다시 검사] 버튼도 넣어줍니다.
    [다시 검사] 버튼에는 1프레임으로 가서 멈춰라라고 하면 되겠지요?

    on (release){
            gotoAndStop(1);
    }


    1-4. 점수 표시하기

    변수를 통해 얻어진 값을 화면상에 표시하려면 텍스트 상자가 '동적 텍스트'가 되어야 합니다.
    그리고 이 텍스트 상자에 표시될 변수명을 [변수 : ] 항목에 적어줍니다.