Chapter 5. 바람이 불지 않는 선풍기 - 3


계속 이어서 하겠습니다.

50. sb_fanStart라는 이름으로 스토리보드를 생성합니다.



51. 타임라인을 1초에 놓고, 자물쇠로 잠근 것은 다 풀어주시고, Fan을 선택합니다.


그리고 아래와 같이 각도를 360이라고 적어줍니다.



52. 아래와 같이 되면 저 계란모양의 키프레임을 눌러주세요..


53. 키스플라인 곡선을 아래와 같이 만듭니다 (노란점을 잡고 당기면 됩니다.)


지금까지 한것을 플레이 시켜보면 Fan이 한바퀴 도는 것을 볼수 있는데요..
천천히 돌다가 점차 빨라지는 것을 만든 것입니다..
그러니까 선풍기가 돌때~ 조금 천천히 시작해서 점차 빨리 돌잖아요.. 그 시작 부분을 만든 것입니다.

54. 닫기를 눌러 스토리 보드를 빠져나갑니다.


55. sb_fanPlay라는 이름으로 스토리보드를 생성합니다.


56. 타임라인을 0.1초에 두고 Fan을 선택합니다.



57. 그리고 각도를 -360으로 줍니다. (이것은 0.1초동안 한바퀴를 돌리는 것입니다.)
* 여기서 왜 360이 아닌 -360으로 줍니까? 이렇게 생각 하실 수 있는데요.. 맞습니다.
그런데 실행결과상 360으로 주면 꼭 반대로 도는 것처럼 보입니다. 우리 눈의 착시 현상 인가봐요~ ㅜㅜ
어~ 자동차나 마차 바퀴를 보면 반대로 도는것처럼 보이는 경우가 있거든요..
처음에 그냥 360으로 했다가 이상해서 -360으로 그냥 해버렸습니다.
이게 나은거 같아서요~ 
(자기가 만든것에 따라서 -360으로도 해보고 360으로도 해봐서 자연 스러운 것으로 하시길 바래요~ ㅋ)



그러면 아래와 같이 키프레임이  생깁니다.


58. 스토리 보드의 이름을 선택하고


RepeatBehavior를 Forever로 줍니다. 그리고 스토리 보드를 빠져 나갑니다.


59. sb_fanStop 이라는 이름으로 스토리보드를 생성하고 1.6초의 위치에 타임라인을 이동시킵니다.
그리고 Fans을 선택하고 각도를 360도 로 줍니다.


60. 아래와 같이 키프레임을 선택합니다


61. 키스플라인 곡선을 아래와 같이 만듭니다 (노란점을 잡고 당기면 됩니다.)

돌다가 점차 느려지는 것을 만든 것입니다..
그러니까 선풍기가 멈출때~ 점차 도는 속도를 줄이면서 멈추잖아요. 그 부분을 만든 것입니다.

62. 스토리 보드를 빠져 나갑니다.

63. ON버튼을 선택합니다.



64. 아래 그림처럼 순서대로 클릭합니다. 2번 부분에서는 더블클릭합니다.

그러면 비주얼스튜디오가 열리는데.. 그냥 두고 다시 블랜드로 갑니다.

65. OFF버튼을 선택합니다.



66. Click에서 더블클릭합니다.


그러면 아래와 같이 소스가 생깁니다.

  public partial class Page : UserControl
  {
       public Page()
       {
            // Required to initialize variables
              InitializeComponent();
       }

        private void btnOn_Click(object sender, RoutedEventArgs e)
        {

        }

        private void btnOff_Click(object sender, RoutedEventArgs e)
        {

        }
 }

67. 아래와 같이 소스를 수정합니다

  public partial class Page : UserControl
  {
        Boolean isOn = false;
        Boolean isOff = false;    

        public Page()
        {
            // Required to initialize variables
            InitializeComponent();
            sb_fanStart.Completed += new EventHandler(sb_fanStart_Completed);
            sb_fanStop.Completed += new EventHandler(sb_fanStop_Completed);
        }

        void sb_fanStop_Completed(object sender, EventArgs e)
        {
            isOff = true;
            sb_fanStop.Stop();
        }

        void sb_fanStart_Completed(object sender, EventArgs e)
        {
            sb_fanStart.Stop();
            sb_fanPlay.Begin();
        }

        private void btnOn_Click(object sender, RoutedEventArgs e)
        {
            if (!isOn)
            {
                if (isOff)
                {
                      sb_fanStop.Stop();
                 }
                sb_fanStart.Begin();
                isOn = true;
                isOff = false;
            }
        }

        private void btnOff_Click(object sender, RoutedEventArgs e)
        {
            if (isOn)
            {
                sb_fanStart.Stop(); 
                sb_fanPlay.Stop();
                sb_fanStop.Begin();
                isOn = false;
            }
        }
 }


68. 저장하고 비주얼 스튜디오를 닫습니다.
69. 블랜드에서 F5를 눌러 실행합니다.

모두 성공하셨나요??
소스는 아래에 첨부할게요~



[ 응용예제 ]


모두 안녕히 계세요~~~~ ^^;


Posted by 하얀코코

Trackback Address :: http://www.whitecoco.net/trackback/12 관련글 쓰기

댓글을 달아 주세요

  1. HOONS 2008/12/20 19:44 Address Modify/Delete Reply

    다시 보니 완전 초고속 선풍이기네요ㅋ

  2. 强太風 2009/06/04 18:29 Address Modify/Delete Reply

    안녕하세요. 오랜만에 찾아옵니다... ㅋㅋ ^^;

    질문이 한가지 있는데요..

    제가 비슷한 역할을 하는 것을 하나 만들었는데 그것은 위의 선풍기와 회전 방향이 반대거든요?...

    그래서 Angle을 반대로 마이너스를 해주고 스토리보드를 실행 시키면 Blend에서는 정상적으로 반 시계 방향으로 회전을 해요. 그런데 실행을 시키면 반대로 시계 방향으로 돌게 되는데 어떻게 해야 할지요?....

    알려주세요....

    • 하얀코코 2009/06/09 10:18 Address Modify/Delete

      우선 답변이 늦은 점 정말 죄송합니다.
      말씀하신데로 반대 방향으로 제가 구현을 해보았습니다.
      그런데 저는 잘 됩니다 ㅡㅡ; 실행시 반시계 방향으로 잘 돕니다.
      그럼 왜 그런 일이 생길 수 있는지.. 두가지의 경우를 살펴보겠습니다.
      한가지는 sb_fanPlay를 360으로 바꾸지 않으신 경우
      다른 한가지는 컴퓨터의 문제입니다.
      구현하신 소스를 봐야 정확한 파악이 가능하겠지만. 첫번째는 아니실테고..
      지금 상황으로는 컴퓨터의 문제 같습니다.
      ㅠㅠ
      답변늦어서 죄송해요 흑~

  3. 2009/06/17 01:12 Address Modify/Delete Reply

    비밀댓글 입니다