2010-03-09 1 views
4

애니메이션/팬 이미지를 요청하는 클라이언트가 웹 사이트에 추가됩니다. 기본적으로 표준 크기의 이미지로 약간 더 좁은 프레임에 넣고 이미지를 왼쪽에서 오른쪽으로 이동하여 웹 사이트의 시각적 요소로 사용하려고합니다. 클릭이나 드래그가 필요 없습니다. 그것은 기본적으로 기본적으로 왼쪽에서 오른쪽으로 움직이는 팬이며 다른 그림으로 다시 시작합니다.Silverlight : 이미지 애니메이션 및/또는 팬

이 항목은 .NET 페이지이며 여기에 Silverlight 도서 모음이 있습니다.이 책에는 내가 배우려는 아이디어가 있습니다. 지금은 실제 라이브 사용이 있기 때문에 지금은 어느 때보 다 좋은 시간이라고 생각합니다. 기록을 위해, 나는 .NET 개발자이지만 Silverlight는 몇 권의 책의 처음 몇 장을 읽지 않고 그다지 놀지 않았습니다.

그래서 ... 첫 번째 질문은 Silverlight와 관련이 있다고 가정하고 있습니다. 잘못된 것일까 요?

두 번째 질문, 내가 할 수 있다면, 누군가가 올바른 방향으로 나를 가리킬 수있는 한,이를 위해 어떤 기능/제어/기술이 필요합니까? 나는 깊은 확대/축소를 읽고 있지만, 그게 내가 원하는 것 같지 않습니다. 난 그냥 표준 크기의 JPEG/GIF/어떤 파일을 가지고 천천히 왼쪽에서 오른쪽으로 팬해야합니다. 이 작업을 수행하기 위해 Silverlight의 어떤 기능을 배우고/시간을 할애해야합니까?

답변

5

이것은 확실히 수행 할 수 있습니다. 기본적으로 캔버스에 이미지가 있고 캔버스에서 MouseMove 이벤트를 처리합니다. 마우스가 한면에서 다른면으로 궤적을 옮길 때 이미지를 좌우로 이동하기 위해 이미지에 번역을 적용합니다.

은 다음 코드는 시작해야합니다

뒤에 코드에서

<Canvas x:Name="LayoutCanvas" MouseMove="LayoutCanvas_MouseMove" MouseEnter="LayoutCanvas_MouseEnter" Height="200" Width="200"> 
    <Image x:Name="imgToMove" Source="myimage.png" /> 
</Canvas> 

에서 MainPage.xaml에 이미지 (이벤트를 남겨주세요/입력 /를 MouseMove 이벤트를 통지)와 캔버스를 추가, MouseMove 이벤트를 추가/입장/퇴장 이벤트

Point lastMousePos = new Point(); 
    Point currentMousePos = new Point(); 
    double amountToMove = 1; 
    private void LayoutCanvas_MouseMove(object sender, MouseEventArgs e) 
    { 
     currentMousePos = e.GetPosition(LayoutCanvas); 
     if (lastMousePos.X > currentMousePos.X) 
     { 
      amountToMove--; 
     } 
     else 
     { 
      amountToMove++; 
     } 
     imgToMove.SetValue(Canvas.LeftProperty, amountToMove); 
     lastMousePos = currentMousePos; 
    } 

    private void LayoutCanvas_MouseEnter(object sender, MouseEventArgs e) 
    { 
     lastMousePos = e.GetPosition(LayoutCanvas); 
    } 

    private void LayoutCanvas_MouseLeave(object sender, MouseEventArgs e) 
    { 
     imgToMove.SetValue(Canvas.LeftProperty, (double)0); 
    } 

이제 끝났습니다. 이제 마우스를 이미지 위로 이동하면 이미지가 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로 변환됩니다. 이미지를 떠나면 원래 위치로 되돌아갑니다.

0

나는 그렇게 할 수 있다고 생각합니다. 애니메이션에 관한 책의 장을 읽으면 이미지를 쉽게 옮길 수있는 방법을 알 수 있습니다. 그리고 Canvas와 같은 레이아웃 패널에 Image와 같은 컨트롤을 배치하는 방법에 대해 읽어보십시오.

0

당신이 찾고있는 것을 투영 변환이라고합니다.

좋은 소스는 다음과 같습니다

Silverlight 3 PlaneProjection Primer 제이미로드 리 게스에 의해

MSDN Documentation of PlaneProjection

Foundation Silverlight 3 Animation by Jeff Paries

의 제 7 장 기본적으로 당신이 할거야 것은 적용됩니다 애니메이션을 만드는 것입니다 Y 축을 따른 회전.

+0

OP가 비행기 투영을 찾는 것이 아니라 오히려 번역을 찾고 있다고 생각합니다. 그가 "팬"이라고 말했을 때 그가 "회전"을 의미하지 않는다면. 회전을 의미하면 PlaneProjection이 꼭 맞는 것입니다. 그렇지 않으면 번역입니다. –