블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday



먼저 Silverlight 캠프 소식입니다.(3/8 토요일)


HOONS닷넷이 준비한 마지막 실버라이트 여행이 되겠습니다. 이제는 여러분들이 직접 참여하여 많은 정보들을 교류하고 또한 IT 인맥을 넓힐 수 있는 유익한 시간이 될 수 있을것입니다.



지금까지의 여행을 통해 여러분은 실버라이트에 대한 전반적인 사항을 둘러볼 수 있었습니다.
이제, 여러분은 직접 실버라이트를 할 때입니다.

이번 캠프에서는 보다 적극적으로 실버라이트에 도전하고 실버라이트에 관심있는 많은 사람들과
만날 수 있는 기회를 마련하였습니다.

실버라이트 캠프는 보다 강도 높은 만남을 위해 밤샘으로 진행됩니다! 특히 이번 캠프의 하일라이트인
도전! 실버벨은 밤 12시 반부터 시작될 예정이니 모쪼록 오랫동안 참여해주시기 바랍니다.
 
시간
행사
17:30~18:30
조별모임 & 저녁시간
18:30~19:30
친해지길 바래
19:30~22:00
조별 토론회 (대주제: Rich Internet Application)
22:00~24:00
Impossible is nothing
24:00~24:30
야식시간
24:30~03:00
도전! 실버벨
03:00 ~
조별 뒷풀이, 찜질방 러쉬
 
캠프에 참여하고 싶은 분은 gongdosoft@live.com 으로 다음 양식의 메일을 보내주시면 됩니다.
  ● 이름
● 전화 번호
● 회사명
● 회신 이메일 주소(없을 경우 보낸 메일 주소)
★중요★ 반드시 다음 중 하나를 첨부하세요.
      - 직접 만든 실버라이트 애플리케이션
    - 실버라이트로 만들 수 있는 RIA의 아이디어 또는 기획서
    - Expression Design이나 Blend로 직접 만든 실버라이트 UI 또는 애니메이션
참석자 및 조 발표는 3월 5일(수)에 훈스닷넷(http://www.hoons.kr)에 공지될 예정입니다.
 
신청하는 모든 분이 참여하면 좋겠지만 아쉽게도 행사의 장소와 시간적인 문제로 정말로 실버라이트에 열정을 가지고 참여하고자 하는 분들을 선정하여 40분만을 초대하기로 했습니다.
초대 기준은 참가 신청에 필요한 첨부물을 훈스닷넷 실버라이트 시삽이 평가하여 순위를 정합니다. 평가는 작품의 완성도 보다는 열정과 독특하고 기발한 아이디어를 우선으로 하니 익숙하지 않더라도 즐겁게 만들어주시면 되고 혹시 도무지 만들 수 있는 방법이 떠오르지 않는다면 기획 의도를 재밌게 설명하는 것으로도 충분하니 겁먹지 마세요!
부득이하게 제한된 인원만 초대할 수 있으므로 참가 신청은 반드시 참여가 가능한 분만 해주시길 바라며 아무쪼록 적극적인 대화와 참여의 장이 되길 바랍니다.
 
신청 인원이 마감되는 대로 신청자들이 소속된 조가 훈스닷넷 홈페이지에 공지되고 각 조별로 훈스닷넷 시삽님들이 조장을 맡아 개별적으로 연락을 할 것입니다.
조별 토론회에서는 실버라이트와 RIA라는 대주제 아래에 조별로 자유롭게 주제를 선정하여 토론을 진행하며 각 조별로 토론된 내용을 발표하는 시간을 갖습니다. 평소에 실버라이트와 RIA에 대해 생각했던 것들을 마음껏 얘기해 보세요.
 
도전! 실버벨은 실버라이트와 관련된 각종 퀴즈를 풀어나가며 마지막에 실버벨을 울리는 최종 1명이 XBOX 경품을 가져가게 됩니다.
문제는 Silverlight라는 대주제 아래 실버라이트 교양 30%, 실버라이트 개발 60%, 기타 10%로 진행이 됩니다. 출제가 예상되는 범위는 다음과 같습니다.
  ● 블로그 - http://www.uxkorea.net (준서아빠-교양부분), http://gongdo.tistory.com (공도소프트)
● 커뮤니티 - http://www.hoons.kr (HOONS닷넷), http://cafe.naver.com/mssilverlight
                 (실버라이트카페)
● 도서 - HOONS닷넷과 함께하는 실버라이트
 
참석자 전원에게는 Expression 스케치 북을 드립니다
캠프 진행 중 여러 행사를 통해 Xbox360 /무선 키보드 마우스세트와 영화 관람권을 드립니다.
 
gongdosoft@live.com
 






8회 HOONS닷넷 정기세미나 소식입니다.3/15 (토)



기나긴 실버라이트의 항해를 마치고  HOONS닷넷 정기세미나가 다시 부활하게 되었습니다.
앞으로의 정기세미나에서는 그동안 소홀했던 여러닷넷 기술들을 다루도록 하겠습니다.




8회 정기세미나
- 일시 : 2008년 03월 15일(토) 13시 00분
- 장소 : 한국마이크로소프트 (포스코 센터 5층)
- 참가비 : 무료
- 세미나 신청: http://www.hoons.kr/SeminarJoin.aspx 
세미나 Agenda
13:00~13:30
등 록
13:30-14:10
개발자를 위한 SQL Server 2008의 소개 / 이수겸
14:10-15:00
2008 MIX를 통하여 정리해보는 차세대 웹의 전략 / 김대우 박경훈
15:00~15:20
휴식
15:20~16:00
Jump to LINQ / 김수영,김시원
16:00~16:40
ASP.NET 3.5의 소개 / 서동진
16:40~17:00
휴 식
17:00~17:40
실버라이트 2.0 Now!  / 공인석,오일석
17:40~18:00
Live Q&A / 발표자
18:00~
경품추첨
발표 내용 소개

개발자를 위한 SQL Server 2008의 소개 / 이수겸

마이크로소프트가 SQL Server를 통해서 주장하는 데이터 플랫폼 비전을 개략적으로 살펴보고, 개발자 중심으로 SQL Server 2008의 새로운 기능을 소개합니다.
2008 MIX를 통하여 정리해보는 차세대 웹의 전략 / 김대우, 박경훈

 

3월 5일부터 7일까지 전세계적으로 기대하고 고대하던 MIX 행사가 열리게 됩니다. 이번 세션에서는 MIX행사에서 말하고 있는 Silverlight, ASP.NET 3.5, Windows Live 등의 기술을 통한 핵심 전략은 무엇인지 분석해 봅니다. 또한 여러 예제를 통한 새로운 비지니스 모델을 어떻게 창출해 낼 수 있을지 살펴보도록 하겠습니다.
Jump to LINQ / 김수영, 김시원

 

이제 VS 2008 출시가 바로 코앞으로 다가 왔습니다. 이전 신제품 출시와 마찬가지로 이번에도 많은 변화를 가져옵니다. 그 중에서도 LINQ가 이번에 새롭게 등장한 기술의 중심에 서있게 될 것입니다. LINQ를 위한 C# 3.0의 핵심 특징을 살펴보고 또한 LINQ 쿼리 구문 작성에 있어 성능 향상을 위한 팁들을 전해드리겠습니다. 이 세션은 C#의 사전 지식을 가지고 있는 분이라면 누구나 들을 수 있습니다.
ASP.NET 3.5의 소개 / 서동진

 

새로운 기능을 대거 탑재한 ASP.NET 3.5 Extension이 탄생할 예정입니다. 이번 세션에서는 새로원진 ASP.NET 3.5의 주요 기능(ASP.NET AJAX Improvements, MVC, Dynamic Data Support, Silverlight Support, Data Service)에 대해서 살펴보고 기존의 기술들과 어떻게 연동하고 또한 어떻게 활용해 나갈지 살펴보도록 하겠습니다.
실버라이트 2.0 NOW! / 공인석, 오일석

 

2008년 3월, MIX08에서는 더욱 강력해진 런타임 엔진과 기능들로 무장하고 버전업까지 마친 실버라이트 2.0 Beta가 소개될 예정입니다. 실버라이트 2.0 Beta는 발표후 빠른 시일 내에 Go-Live 라이선스가 제공되어 서비스가 가능하므로 그간 RIA에 목말랐던 닷넷 개발자에게 단비와 같은 존재가 될 것입니다. 이 세션에서는 새로워진 실버라이트 2.0의 주요 구성과 깜짝 놀랄만 한 기능과 데모를 소개하고 향후 RIA 시장에서의 새로운 패러다임과 전략을 제시합니다.
진행자 소개
김대우 

한국마이크로소프트 개발자 및 플랫폼 사업 총괄부서 웹 플랫폼 팀 근무
현) Web Developer Evangelist
박경훈 

HOONS닷넷 사이트 운영자
다수 닷넷 기술서적 집필및 번역
Microsoft Visual C# MVP(2005~2008)
이수겸 

현) 올랩컨설팅 선임
MCDBA / MCSD
http://bybi.tistory.com
서동진 

HOONS닷넷 ASP.Net 시삽
현) MySpace Developer
Microsoft ASP.Net MVP
MCAD / MCSD
김수영 

HOONS 닷넷 C#.NET 시삽
현) 네오위즈 게임즈
Microsoft  Visual C# MVP
MCAD / MCSD
http://www.dotnetngene.kr

김시원 

HOONS 닷넷 C#.NET 시삽
현) 이스트소프트
http://loveciel.tistory.com

공인석 

블로그 [유령회사 공도소프트] 운영자.
HOONS닷넷 실버라이트 시삽.
SBS NView, MNet TVDeep 등 다수의 실버라이트 프로젝트 수행.
MIX07이래로 실버라이트에 올인 러쉬 중.
오일석 

HOONS닷넷 실버라이트 시삽
블로그 http://onestone.tistory.com
플래시 개발자에서 실버라이트 개발자로 전향
세미나 장소


한국 마이크로소프트 - 포스코 센터 5층


 
경품안내

ITC 번역서

Programming WCF Service 한글판
(저자:저발로위,번역:박경훈) - 2권

한글판 Professional Ajax
(저자: Nicholas, 번역:장시형) - 2권

한글판 ASP.NET 2.0 웹사이트 프로그래밍 : 문제 분석-설계-솔루션 제작
(저자:마르코 벨리나소,번역:송호중) - 2권

알기 쉬운 마이크로소프트 ASP.NET AJAX
(저자:r.모로니,번역:이광수) - 2권
MS 무선마우스 1개


선착순 50명께 드립니다.


 

스폰서
  
Posted by happydong
, |



Silverlight게임 만들기 빨리 진행을 해서 끝내야 하는데제가 회사일 때문에 조금 바빠서리자꾸 늦어 지네요~^^;;아주 혹시나 제 글을 관심 있게 봐주시는 분들에게 죄송하다는 말을 드리고 싶네요~^^;;

그럼 지난 강좌를 이어가도록 하겠습니다. 지난번 시간에는 랜덤함수를 이용해서 이미지들을 생성해서 보여주는 것까지 코드를 짜보았습니다. 이번 시간에는 간단하게 Blend를 이용해서 여러 가지 Storyboard만들어 볼 것이며, 같은 그림을 클릭했을 때 이미지가 지워지도록 만들어 볼 것입니다. ~ 그럼 지난 시간까지 무리 없이 잘 따라오셨다면 Blend를 실행시키시고 해당 프로젝트를 열어주세요. 프로젝트가 다 열리셨다면 Photo.xaml파일을 클릭해서 열어 주세요~

사용자 삽입 이미지


위 그림과 같이 열리셨다면 Rectangle객체를 선택을 해서 전에 만들었던 Image객체 위 크기와 높이를 똑같이 합니다. (Left Top 0 이며, Rectangle객체는 img_back(Canvas객체)의 하위에 생성하지 않습니다.) 속성설정은 아래 그림과 같으며 혹시나 해서 코드소스를 같이 붙어 드립니다^^ 그리고 혹시 객체 색을 어떻게 지정하는지 궁금하신 분들은 [무한도전]Silverlight 메뉴바 만들기(3)를 참고 하세요~!

사용자 삽입 이미지

Photo.xaml 페이지

<Rectangle Width="96" Height="96" Stroke="#FF000000" x:Name="imghide" Opacity="1" RenderTransformOrigin="0.5,0.5" Cursor="Hand">

<Rectangle.RenderTransform>

<TransformGroup>

<ScaleTransform ScaleX="1" ScaleY="1"/>

<SkewTransform AngleX="0" AngleY="0"/>

<RotateTransform Angle="0"/>

<TranslateTransform X="0" Y="0"/>

</TransformGroup>

</Rectangle.RenderTransform>

<Rectangle.Fill>

<LinearGradientBrush EndPoint="0.505,0" StartPoint="0.5,0.979">

<GradientStop Color="#FF2A2A2A" Offset="0.019"/>

<GradientStop Color="#FF474646" Offset="0.538"/>

<GradientStop Color="#FF414141" Offset="0.486"/>

<GradientStop Color="#FF999999" Offset="0.923"/>

<GradientStop Color="#FF333333" Offset="0.269"/>

</LinearGradientBrush>

</Rectangle.Fill>

</Rectangle>


위 코드는 img_back(Canvas객체) 바로 아래에 넣으시면 되고,그렇게 생성이 될 것 입니다^^

 

이제는 몇가지 Storyboard를 만들어 보도록 하겠습니다. 이 부분은 그림으로 하나하나 캡쳐뜨는 것이 너무 많을 것 같아서 동영상으로 찍어 보았습니다. ^^;;처음 찍어보는 거라 좀 쓱쓰럽네요~^^그래도 혹시 Blend에 익숙하지 않은 분들에게 도움이 되셨으면 좋겠습니다~

참고로 마이크가 없는 관계로 말로 설명을 하지 못했습니다. 다소 보는데 불편하시더라고 이해해주세요~!^^;;;

 



두개의 StoryBoard를 말들었습니다. 하나는 Photobig이고, 하나는 Photosmall입니다.

각각의 행위는 아래와 같습니다.

  Photobig : 사용자가 클릭을 했을 때 객체가 커지면서 이미지가 보여지는 StoryBoard.

Photosmall : 같은 그림이 아닐경우 객체가 작아지면서 이미지가 보이지 않는 StoryBoard.

 

생성된 코드는 아래와 같습니다.

Photo.xaml 페이지

<Canvas.Resources>

<Storyboard x:Name="Photobig">

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="img_back" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1.25"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="img_back" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1.25"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="imghide" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1.25"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="imghide" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1.25"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="imghide" Storyboard.TargetProperty="(UIElement.Opacity)">

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="0"/>

</DoubleAnimationUsingKeyFrames>

</Storyboard>

<Storyboard x:Name="Photosmall">

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="img_back" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">

<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1.25"/>

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="imghide" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">

<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1.25"/>

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="img_back" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">

<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1.25"/>

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="imghide" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">

<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1.25"/>

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="imghide" Storyboard.TargetProperty="(UIElement.Opacity)">

<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>

<SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1"/>

</DoubleAnimationUsingKeyFrames>

</Storyboard>

</Canvas.Resources>

<!-- 전에 있던 코드에서 코드가 조금 추가 되었습니다. 유의하세요~! -->

<Canvas Width="96" Height="96" Canvas.Left="0" Canvas.Top="0" x:Name="img_back" RenderTransformOrigin="0.5,0.5">

<Canvas.RenderTransform>

<TransformGroup>

<ScaleTransform ScaleX="1" ScaleY="1"/>

<SkewTransform AngleX="0" AngleY="0"/>

<RotateTransform Angle="0"/>

<TranslateTransform X="0" Y="0"/>

</TransformGroup>

</Canvas.RenderTransform>

<Image Width="96" Height="96" Stretch="Fill" x:Name="image1">

</Image>

</Canvas>


이제 StoryBoard가 만들어 졌으니깐 같은 그림일 때 지워지고 같은 그림이 아니라면 다시 원래되로 돌아가는 소스코드를 짜보도록 하겠습니다. 먼저 Photo페이지의 cs코드부분 열어주시고, 아래 코드들를 입력 합니다.

(참고로 아래 코드들은 전에 작성했던 코드에 추가적으로 들어가는 코드이니 혼동없으시길 바랍니다)

 

Photo.xaml.cs 페이지 (전역변수 선언)

기존 코드 생략

// 클릭을 했는지 여부를 확인 하기위한

bool _Mousedown = false;

 

Photo.xaml.cs 페이지 (Property)

/// <summary>

/// 객체가 클릭 여부를 지정하거나 반환

/// </summary>

public bool MouseDown

{

            get { return _Mousedown; }

            set { _Mousedown = value; }

}

 

위 변수는 사용자가 한객체를 여러 번 클릭하는 행위를 방지하기 위해서 선언한 것 이며,

Property를 통해서 Page클래스에서 확인할수 있습니다.

 

Photo.xaml.cs 페이지

public Photo(Page page,Downloader down ,String URL)

{

    기존 코드 생략

    // 객체 클릭 이벤트 생성

this.MouseLeftButtonDown += new MouseEventHandler(Photo_MouseLeftButtonDown);

}

void Photo_MouseLeftButtonDown(object sender, MouseEventArgs e)

{

 // Page클래스의 SetPoint에 접근

_Page.SetPoint(this, _root);

}

 

SetPoint를 아래코드에서도 알수 있겠지만 접근제한자가 internal이여서 접근이 가능하며, 인자값으로 자신(Photo) _root(FrameworkElement)를 받고 있습니다. Page클래스 단에서 쉽게 Photo클래스를 컨트롤 하기 위해서 입니다.

 

Photo.xaml.cs 페이지 (Property)

/// <summary>

/// 객체의 이미지 URL값을 반환

/// </summary>

public string getUrl

{

get { return _URL; }

}


Property Page클래스에서 같은 그림인지 아닌지 확인 하기위해서 만든 것입니다. , 같은 그림인지 여부는 URL값으로 확인 할수 있습니다. 이제 대충 어떻게 해야하는지 감을 잡으신 분들분 계실 것 같군요~!^^이제 Page.xaml.cs페이지에서 코드를 짜보도록 하겠습니다. 먼전 변수 선선언부부터 하도록 하겠습니다 .

 

Page.xaml.cs 페이지 (전역변수 선언)

기존 코드 생략

 

// 사용자의 두번 클릭을 위한 전역 변수

int number = 0;

// 선택한 두개의 이미지 확인을 위한 Photo 배열

private Photo[] _ImgArray = new Photo[2];

// Photo FramworkElement 생성 각각의 StoryBoard 두개를 실행하기 위함.

private FrameworkElement[] _ROOT = new FrameworkElement[2];

 

보시기 편하게 주석으로 각각의 변수가 어떻게 쓰여질지 작성해 봤습니다.다음은 SetPoint부분의 코드를 작성해 보겠습니다.

 

Page.xaml.cs 페이지

internal void SetPoint(Photo photo, FrameworkElement root)

{

// 사용자가 막 클릭하는 걸 방지..딱 두번만 클릭관련 조건~!

if (number < 2)

{

// 스크린 Canvas에서 이미지 삭제

screen.Children.Remove(photo);

// 스크린 Canvas에 이미지 다시 추가

screen.Children.Add(photo);

 

//같은 그림들 두번 클릭하면 안됨. 그래서 해당 Photo에 마우스클릭을 했었는지 확인함.

if (!photo.MouseDown)

{

photo.MouseDown = true;

// Photo에 있는 StoryBoard를 생성하기.

Storyboard Photobig = root.FindName("Photobig") as Storyboard;

Photobig.Begin();

 

_ImgArray[number] = photo;

_ROOT[number] = root;

number++;

if (_ImgArray[1] != null)

{

// 두번째로 찍은 이미지이면 스토리보드 실행후 이벤트 발생함

Photobig.Completed += new EventHandler(Photobig_Completed);

}

}

}

}


위 코드는 주석을 통해서도 대충 이해하실수 있을 것이라고 생각이 됩니다. 조금 이상하게 보일 부분이 이미지를 삭제하고 추가하는 부분일텐데요. 이 부분은 왜 이렇게 했냐면
사용자 정의 컨트롤이 for문을 돌면서 동적으로 생성이 되다 보니깐 먼저 생성된 것들은 제일 마지막에 생성된 객체의 밑에 있게됩니다. 만약 사용자가 제일 밑에 있는 객체을 클릭했다고 했을 때 그 객체의 StoryBoard는 어떻게 되겠습니까? 상상이 가시나요~^^ 제일 위에 있는 객체에 겹치게 되어서 제일 위에 있는 객체 위로 못올라 오게 됩니다. 그럼 클릭한 객체의 zindex값을 조정해 주면 되지 않을까 생각하시는 분이 있을까 생각이 됩니다. 저 또한 그렇게 생각을 했으니깐요.그래서  사용자 정의 컨트롤의 최상위 Canvas zindex값을 조정해 봤는데 안되더군요~^^;; 나름 고민과 좌절을 겪고 있던중 문득 생각이 난 것이 새로 추가하면 위로 가지 않을까 싶어서 삭제후 다시 추가를 했던 것 입니다~^^;;그러니 내가 원하던데로 움직이니정말 좋았습니다.ㅋㅋ 음..다음 조건들은 주석에서도 설명하고 있듯이 사용자가 객체 클릭횟수를 조절하기 위함이고요, 그 다음은 한 객체를 두번 클릭을 방지하기 위한 조건입니다. 한 객체를 두번 클릭하면 StoryBoard가 두번 일어나겠지요~!그럼 안되잖아요~! 클릭하면 _ImgArray배열 변수에 값을 지정하게 되고 두번째 값까지 들어가게 되면 생성한 StoryBoard의 이벤트(Completed:StoryBoard가 끝나면 일어나는 이벤트)를 생성합니다~! 이벤트 내용 코드는 아래와 같습니다~

 

Page.xaml.cs 페이지

void Photobig_Completed(object sender, EventArgs e)

{

//이미지 URL이 같다면 지워버리게 함.

if (_ImgArray[0].getUrl == _ImgArray[1].getUrl)

{

for (int i = 0; i < 2; i++)

{

//스크린 Canvas에서 제거

screen.Children.Remove(_ImgArray[i]);

number = 0;

}

}

else

{

for (int i = 0; i < 2; i++)

{

// Photo에 있는 StoryBoard를 생성하기.

Storyboard Photosmall = _ROOT[i].FindName("Photosmall") as Storyboard;

Photosmall.Begin();

// 그림이 같이 않을 경우 StoryBoard가 실행이 다 끝난 다음에 클릭할수 있도록 하기 //위한 이벤트처리.

Photosmall.Completed += new EventHandler(Photosmall_Completed);

//마우스 관련 다시 false로 돌림

_ImgArray[i].MouseDown = false;

}

}

//배열은 null 값으로 재지정함.

for (int k = 0; k < 2; k++)

{

_ImgArray[k] = null;

_ROOT[k] = null;

}

}

// Photosmall StoryBoard 이벤트부분

void Photosmall_Completed(object sender, EventArgs e) { number = 0; }

 

위 코드가 바로 같은 그림인 경우 객체를 삭제하는 코드 부분입니다.URL값으로 확인을 해서 같은 그림이라면 삭제가 이루어 지고요, 같은 그림이 아니라면 Photosmall StoryBoard를 생성해서 실행하게 됩니다.StoryBoard가 실행이 끝나면 다시 클릭할수 있도록 number변수를 초기화 해줍니다.

그리고 _ImgArray배열과 _ROOT배열의 값을 null로 초기화 해줍니다~ 이렇게 해야 다음에 다시 확인할수 있을 테니깐요~^^ 아래 동영상은 잘 작동이 되는 모습을 찍어본 것 입니다.



 

~이제 어느정도 게임 처럼 작동하고 있군요~^^ 이제부터는 간단한 조건과 스토리보드만 추가하면 게임이 완성이 됩니다~^^ 한번 잘 생각해 보시고 직접 미리만들어 보는 것도 괜찮을 것 같네요~ 여기까지 따라오느라 수고 많으셨습니다~^^ 혹시 제 내용중에 부족한 부분이 있거나 궁금하신 부분이 있다면 언제든지 말씀해 주세요~^^
 
Posted by happydong
, |



실버라이트2.0「.NET 날개 달았다」

김태정 기자 ( ZDNet Korea )   2008/01/18
Silverlight
Microsoft
전 세계 웹 개발자들이 주시하고 있는 실버라이트2.0이 한층 더 모습을 드러냈다. 마이크로소프트는 적어도 올 연말에 신기능을 가득 담은 실버라이트2.0을 출시할 방침이다.

ASP.NET의 창시자이며 한국 개발자들 사이에서도 ‘스타’로 통하는 MS 스콧 구슬리 전무는 17일 방한해 가진 자리에서 “실버라이트2.0이 IT 개발환경의 질을 크게 올려줄 것”임을 누차 강조했다.

닷넷 기능 적용, 개발 환경 넓혀
그가 설명하는 실버라이트2.0의 가장 큰 특징은 ‘닷넷 프레임워크(.NET : 이하 닷넷)’가 탑재됐다는 것이다. 닷넷은 CLR(Common Languge Runtime)과 FCL(Framework Class Library)로 구성된 MS의 플랫폼이다.

다시 말해 실버라이트와 닷넷의 결합은 서버사이드에서만 사용하던 기술로 클라이언트 개발을 가능케 했다는 의미다. 또 윈도우뿐 아니라 맥이나 파이어폭스와 같은 다른 환경에서도 개발을 진행할 수 있다.



한국MS 김국현 부장은 “실버라이트에 개발을 위한 부품 ‘닷넷’이 장착되면서 개발환경은 보다 자유로워 질 것”이라며 “X-internet이나 P2P 등에서의 응용까지도 충분히 가능하다”고 밝혔다.

여기에 더 고려해야할 점은 MS가 다음달 ‘비주얼 스튜디오 2008’과 ‘닷넷 3.5’를 출시한다는 것이다. 이는 실버라이트2.0의 ‘날개’가 될 것으로 MS는 기대하고 있다.

특히 ‘비주얼 스튜디오 2008’은 윈도우 클라이언트 애플리케이션과 오피스 기반 솔루션 개발 능력을 이전보다 크게 향상됐다고 한다.

한 가지 더 반길 만한 소식을 전하자면, 이날 구슬리 이사는 닷넷에 대한 소스코드를 오픈하겠다고 발표했다. 누구든지 무료로 사용할 수 있도록 소스코드가 개방된 것이다. 아울러 비주얼 스튜디오 2008에도 전에 없던 디버깅 기능이 포함된다.

어도비와의 경쟁은 수년간 지속 전망
한편, 간담회에서는 어도비와의 경쟁전략에 대한 질의도 있었다. 현재 실버라이트는 시장 대부분을 지배한 어도비의 ‘플래시’를 추격하고 있다.

여기에 구슬리 전무의 답변은 다소 원론적이었다. 그는 “경쟁사에 없는 독특한 기능을 제공, 인기 웹사이트들과 우수한 구축사례를 만들 것”이라며 “일반 사용자들에 대한 보급 역시 강화할 계획”이라고 밝혔다.

단, 직접적으로 어도비를 거론한 부분에서는 “향후 수년간은 양사의 ‘건전한’ 경쟁이 계속될 것”이라 밝혀, 장기전을 염두하고 있음을 내비췄다. @

기사원문: http://www.zdnet.co.kr/news/enterprise/dev/0,39031103,39165160,00.htm 
Posted by happydong
, |