GSI

사용자 삽입 이미지

Blend에서 처리한 Animation의 정보중에서 Value 값을 바꾸는 곳을 테스트한
데모 입니다.

관련소스
Posted by gsi
:

Blend를 사용해서 Animation을 작성하다 보면 Blend에서 작성한 코드만 가지고 안될때가 많다. 코드 중간 중간 실시간적으로 받은 데이터의 값을 에니메이션 Value에 추가해서 사용해야 할때가 많아 진다.

이럴 경우 코드 비하인드에서 스토리 보드 부터 다 짜게 되면야.
값 접근하는게 어렵지는 않다. 하지만 에니메이션 정보를 코드로 다 짜준다는건 캐 노가다거나 거의 비효율적인 작업이 될 것이다. 그래서 몇가지 예제를 찾아 봤는데.

다른 방법이 하나 있긴 하다 공도님 사이트에서 본것 ^^..
이것 > http://gongdo.tistory.com/110

하지만 그것도 좀 그렇다. 왠지 작업량이 복잡해 지고 불편하다.

그래서 내부 구조를 조금씩 보면서 아래와 같은 접근 방법을 사용하였다.

<Storyboard x:Key="Timeline1">
 <DoubleAnimationUsingKeyFrames x:Name="TestAni1" BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
  <SplineDoubleKeyFrame x:Name="TestSpline1" KeyTime="00:00:00" Value="0"/>
  <SplineDoubleKeyFrame x:Name="TestSpline2" KeyTime="00:00:01" Value="192"/>
 </DoubleAnimationUsingKeyFrames>
 <DoubleAnimationUsingKeyFrames x:Name="TestAni2" BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
  <SplineDoubleKeyFrame x:Name="TestSpline3" KeyTime="00:00:00" Value="0"/>
  <SplineDoubleKeyFrame x:Name="TestSpline4" KeyTime="00:00:01" Value="62.206"/>
 </DoubleAnimationUsingKeyFrames>
</Storyboard>

위의 코드도 결국 cs 파일에서 하는거 처름 다 추가 되는거라고 생각하고.
아래와 같이 분해 해보았다.

이런 XAML 코드가 있다고 하고 192라는 값을 코드 중간에 바꾸고자 할때
아래와 같이 하면 접근이 되는 것을 확인 하였다.

// 스토리 보드를 가져 온다.
Storyboard st = (Storyboard)this.FindResource("Timeline1");
// 스토리 보드의 내부 타임 라인 그룹정보를 가져 온다.
TimelineCollection tgroup = (TimelineCollection)st.Children;
// TimelineCollection 안에 있는 객체 하나를 가져 온다.
// 근데 여기서 int형 배열 정보만 받는다. 그럼 내가 몇번째 것을 제어 하고 싶은지
// 알아야 할거 같다.
DoubleAnimationUsingKeyFrames dAniFrame = (DoubleAnimationUsingKeyFrames)tgroup[0];
// SplineDoubleKeyFrame  정보를 가져 오기 위해서
// DoubleKeyFrameCollection 의 정보를 가져 온다.
DoubleKeyFrameCollection dAniFrameGroup = (DoubleKeyFrameCollection)dAniFrame.KeyFrames;
// SplineDoubleKeyFrame  정보를 가져 온다.
SplineDoubleKeyFrame spAniFrame = (SplineDoubleKeyFrame)dAniFrameGroup[1];
// Value 값을 조정할 수 있게 된다.
spAniFrame.Value = 500;

코드 량은 좀 되는거 같아도 접근을 할 수 있는거 같은데요.
사실 이거 말고 다른게 있을듯도 한데.. ms가 이거 만들면서 이런거 고민했을텐데.
사실 다른건 아직 방법을 찾지 못했네요.

혹시 아시면 코멘트 부탁해요.

Posted by gsi
:

사용자 삽입 이미지
돈많은 일본의 뽀대나는 건담
 
사용자 삽입 이미지
우리나라의 절약정신이 묻어나는 풋풋한? 건담

출처 : http://cafe.naver.com/latalesia/12434
Posted by gsi
:

사용자 삽입 이미지
아마도 지금 나한테 필요한건 4, 5개 정도 공부 하고 있는 프로그램의 연관
고리인듯 하다.

여러개의 프로그래밍 언어를 공부 해야 내가 구현하고자 하는 것을 진행할 수 있으니.
분명 공부는 해야 하고 순서도 필요하다.

하지마 중간 중간 산출물을 만들어 내고 그것을 통해서 통합 되어 가는 과정이
필요할듯 한데..

아무래도 지금 내가 필요한건 계획적인 진행인듯 하다.

잘해보자.. gsi .. 화팅!!...

이번주 부터는 조금더 재미 있어 질듯 하다..
Posted by gsi
:

사용자 삽입 이미지

프로그램을 하다 보면 마음 먹은대로 빨리빨리 되지 않는다.
가끔 느끼지만 아.. 난 이것도 모른단 말인가..

지금 공부 하고 있는 C#, WPF, Silverlight, asp.net Web Service 등에 대한
나의 견해다.
모르는 부분을 새롭게 공부하면서, 마음은 벌써 지금 프로그램 수백개는 짜고 있지만.
사실상 맘 먹은 것을 짤려고 하면.. 처음 부터 막힌다.

지금까지 몇번이나 그래 왔는지.. 그때 마다 느끼는건.
그래 기초가 부족해.. 다시 공부 하자..
이런 생각에 딜레마에 빠지곤 한다.

그래도 뭐.. 무언가를 새롭게 배워 나가며, 발전해 나가는건
좋은 거니까.

조금씩 성장해 가는 내 모습에.. 보기가 좋아진다.

우리 나라에서 10등 안에 드는 프로그래머는 되봐야 좀 직성에 풀릴듯 하다.

공부를 못해서 10등에 들어 보지도 못했지만 밀이다.. ^^

미친듯이.. 해보자..  화이팅!!!
Posted by gsi
: