달력

02

« 2012/02 »

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  •  
  •  
  •  

원글출처: http://silverlight.net/quickstarts/silverlight10/animations.aspx
본 강좌는 위의 원글을 참고 및 번역해서 작성했으며, 글 중간중간 제 개인적인 표현이나 의견을 넣어서 각색했습니다.

애니메이션
(animation)



실버라이트는 애니메이션을 정의하기 위해 마크업을 사용할 수 있습니다. 이번 강좌에서는 실버라이트 애니메이션 애니메이션 생성 과정을 통해 실버라이트의 특징을 살펴볼까 합니다.

먼저 실버라이트 애니메이션을 위한 간단한 샘플이 필요합니다. Ellipse 를 이용하여 간단한 샘플을 만들어 보겠습니다.

사용자 삽입 이미지

사용자 삽입 이미지

위의 코드를 주의깊게 보셔야 합니다. 어느 부분을 주의깊게 보셔야 하냐면 Ellipse의 이름 부분 입니다.

                                                                x:Name = "ellipse"


ellipse를 애니메이션화 할 때 이름이 필요합니다. XAML로 정의된 애니메이션이 저 이름을 타겟으로 하기 때문입니다. 이제 우리는 애니메이션을 시작하기 위해 EventTrigger를 생성해야 합니다.

먼저 코드를 가져다 놓고 설명해 보겠습니다.
사용자 삽입 이미지

위의 코드를 한줄 한줄 번역해 보겠습니다.

먼저 <Canvas.Triggers
> 가 보입니다.
Triggers의 단어 의미가 '방아쇠' 라고 나오죠? 트리거라는 의미가 '무언가가 무언가를 하기 위해 시작했다.' 라는 의미로 받아들이시면 편합니다.ㅡㅡ; 음 좀 더 쉽게 말해서 총알이 나갈려면 무언가가 총알을 때려야 하지 않습니까? ^^; 그리고 그 무언가로 총알을 때릴려면 우리는 방아쇠를 당겨야 하구요.~ 우리가 총알을 날리기 위해 총의 방아쇠를 당겨야 하듯이 말입니다. 그런 의미에서 Canvas가 무언가를 하기 위해 방아쇠 당길 준비를 하고 있다고 생각합시다.

그 다음으로 <EventTrigger RoutedEvent="Canvas.Loaded"
>라는 코드가 보입니다.
자~ 총의 방아쇠를 당겨야 하는데 언제 당길까요? 무언가가 가서 총알을 쳐야 겠지요? 그럼 언제 총알을 쳐야할까요? 바로 Canvas가 로드 될 때 입니다.^^*

자 다음 코드는 뭘까요?
오호 <EventTrigger.Action>이라고 되어 있네요? 자아 이 부분은 방아쇠가 당겨졌을 때 총알이 날라가듯 그런 총알과 같은 Action을 기록하는 부분 입니다.
총알의 화약이 폭발하고, 화약의 반발력에 의해 총알이 어디론가 튀어나가고... 가다가 어디 부딪히거나 중력에 의해 땅으로 떨어지거나 하겠죠?? ㅎㅎ 이런 일련의 스토리를 Action은 가지고 있습니다.
그 부분은 어디에 기록하냐구요? 바로 <BeginStoryboard></BeginStoryboard> 입니다.
와~ 얼마나 직관적 입니까? 스토리시작~~!! ㅎㅎ
아무튼 이러한 Storyboard는 하나 이상의 애니메이션을 컨트롤하거나 정의하는데 사용됩니다.

자아~ 애니메이션을 하나 만들어 봅시다.
우리는 간단한 실습을 위해서 DoubleAnimation 엘리먼트를 사용하려고 합니다. DoubleAnimation Class는 두 대상값을 지정하면 그 사이에서 값을 전환하면서 애니메이션을 생성하게 됩니다.
사용자 삽입 이미지
사용자 삽입 이미지


위의 코드도 천천히 해석해 보도록 하겠습니다.

위에 언급한대로 두 점 사이에서 애니메이션이 발생하도록 <DoubleAnimation> 엘리먼트를 <Storyboard> 안에 넣습니다. 그리고 이 Storyboard의 주인공이 될 엘리먼트를 지정합니다. 여기서는 ellipse가 되겠네요.
그래서 stroryboard.TargetName = "ellipse" 라고 합니다.
DoubleAnimation이 두 점 사이의 값을 이용한 애니메이션 발생에 필요한 엘리먼트 이기 때문에 나머지 한 점의 값을 설정합니다. 이미 Ellipse에는 한점(Canvas.Left = "30") 이라는 값이 설정되어 있으므로 <DoubleAnimation>Storyboard.TargetProperty 속성값으로 "(Canvas.Left)"를 설정하고 To="300" 을 설정해서 30px 에서 300px 까지 왼쪽에서 오른쪽으로 움직이도록 설정합니다.
그리고 마지막으로 Duration = "0:0:1" 을 설정하게 되는데 이것은 애니메이션되는 Ellipse의 애니메이션 시간을 의미합니다. (약 1초 일 겁니다.^^;)

그럼 이어서 애니메이션의 또 다른 타입에 대해 알아보겠습니다.
실버라이트는 앞에 언급한 DoubleAnimation 처럼 ColorAnimation과 PointAnimation 이라는 것도 지원합니다.
오호~ 두 가지 애니메이션이 뭘 하는 건지 대충 감이 오죠? ^^
바로 색상과 포인트를 지원하는 애니메이션 입니다.
역시 또 코드를 보면서 이해의 폭을 넓혀 가보도록 하겠습니다.

사용자 삽입 이미지
먼저 Storyboard 엘리먼트를 보겠습니다. 그 내부에 보면 ColorAnimation 엘리먼트가 2개 위치하고 있습니다.
앞의 코드에서 방아쇠 언급하면서 상세하게 코드를 설명했으니 이번엔 대충 보셔도 아하~ 하면서 눈치챌 수 있을 겁니다. 2개의 ColorAnimation 엘리먼트는 역시나 각각의 Ellipse 엘리먼트를 가리키고 있네요.

 <ColorAnimation
               Storyboard.TargetName="e1_brush"
               Storyboard.TargetProperty="Color"
               From="Red" To="Blue" Duration="0:0:5" />

해석해 보면 ColorAnimatin 엘리먼트가 가리키는 객체의 이름은 "e1_brush" 이고, 이 ColorAnimation이 가리키는 속성은 Color이며, Red에서 Blue로 5초 동안 변화시켜라.
그럼 이 객체가 가리키는 엘리먼트는 무엇일까요?

 <Ellipse.Fill>
      <SolidColorBrush x:Name="e1_brush" Color="black"/>
 </Ellipse.Fill>


바로 이 코드 입니다. Ellipse.Fill or Ellipse.Shape를 써서 그리고자 하는 형태를 지정하면 될 것이구요~
Ellipse의 기본 컬러가 black으로 지정되어 있습니다. 이 코드가 Ellipse 객체에 색상을 채워주는 역할을 합니다. 아마 이 예제를 실행하면 저 black은 너무 순간적이라 체크하기 어려울 것입니다. 저 부분을 green으로 변경하고 Duration 을 1분으로 설정해 보시면 시작할 때 설정된 green과 ColorAnimation에 설정한 From = "red" 에 의해 첫 시작시 색상이 다홍색 으로 보이는 것을 확인할 수 있습니다.

자 두번째 ColorAnimation의 동작은 위와 동일하지만 코드가 약간 다르네요.
 <ColorAnimation
               Storyboard.TargetName="e2"
               Storyboard.TargetProperty="(Fill).(Color)"
               From="Red" To="Blue" Duration="0:0:5" />

타겟속성이 아예 Fill의 Color라고 직접적으로 명시되어 있군요.
그럼 Ellipse 엘리먼트는 어떻게 되어 있을까요?

<Ellipse x:Name="e2" Fill="Black"
      Height="100" Width="100" Canvas.Left="30" Canvas.Top="130"/>


보시는 것처럼 Ellipse 엘리먼트에 Fill 속성이 있고, 색상이 직접 할당되어 있는 것을 확인할 수 있습니다.
결국 동작은 2가지 타입 동일합니다.

아래는 색상이 변화하는 과정을 이미지로 캡쳐해 본 것 입니다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

음~ 역시 신기합니다.^^
이렇게 우리는 적당한 시간을 주고 객체의 변화를 실감나게 지켜볼 수 있는데요~ 앞에 언급한 StoryboardDoubleAnimation 객체는 Timeline 객체 타입 입니다.

아래는 Timeline이 가지는 유용한 속성입니다.
Storyboard.TargetName : 애니메이팅 하기 위한 객체의 이름
Storyboard.TargetProperty : 애니메이팅하기 위한 속성
BeginTime: 이 속성에 단지 "2"라는 숫자만 넣으면 이틀 뒤에 움직입니다. ㅡㅡ; 그래서 하나의 문법을 따라야 하는데 hours:minutes:seconds 라는 룰을 따라야 하고 다음과 같이 표시할 수 있습니다.
"0:0:2"
이렇게 설정하면 2초 뒤에 애니메이션이 시작합니다.
Duration : timeline의 길이를 의미합니다. 즉 애니메이션이 설정된 시간만큼 움직인다는 뜻이죠.

아래의 코드를 복사하여 예제로 만든 xaml 코드에 붙여넣고 직접 실행하고 결과를 확인해 보시기 바랍니다.
그리고 값을 변경해가면서 어떻게 애니메이션이 움직이는지 결과를 눈으로 직접 확인해 보시면 코드를 이해하는데 많은 도움이 될 것 입니다.

<Canvas
    xmlns="
http://schemas.microsoft.com/client/2007"
    xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml">
  <Canvas.Triggers>
    <EventTrigger RoutedEvent="Canvas.Loaded">
      <EventTrigger.Actions>
        <BeginStoryboard>
          <Storyboard
              Storyboard.TargetName="e1"
              Storyboard.TargetProperty="(Canvas.Left)"
              BeginTime="0:0:5">
            <DoubleAnimation To="300" />
            <DoubleAnimation To="300" Storyboard.TargetName="e2"/>
            <DoubleAnimation To="80" Storyboard.TargetName="e3" Storyboard.TargetProperty="Width"/>
            <DoubleAnimation From="200" To="300" Storyboard.TargetName="e4"/>
            <DoubleAnimation To="300" Duration="0:0:5.3" Storyboard.TargetName="e5"/>
            <DoubleAnimation FillBehavior="HoldEnd" To="200" Storyboard.TargetName="e6"/>
            <DoubleAnimation FillBehavior="Stop" To="200" Storyboard.TargetName="e7"/>
            <DoubleAnimation RepeatBehavior="Forever" To="300" Storyboard.TargetName="e8"/>
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>
  </Canvas.Triggers>
  <Ellipse x:Name="e1" Fill="Black"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="30"/>
  <TextBlock Canvas.Left="0" Canvas.Top="30">e1</TextBlock>
  <Ellipse x:Name="e2" Fill="Red"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="50"/>
  <TextBlock Canvas.Left="0" Canvas.Top="50" Foreground="Red">e2</TextBlock>
  <Ellipse x:Name="e3" Fill="Purple"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="70"/>
  <TextBlock Canvas.Left="0" Canvas.Top="70" Foreground="Purple">e3</TextBlock>
  <Ellipse x:Name="e4" Fill="Blue"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="90"/>
  <TextBlock Canvas.Left="0" Canvas.Top="90" Foreground="Blue">e4</TextBlock>
  <Ellipse x:Name="e5" Fill="Green"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="110"/>
  <TextBlock Canvas.Left="0" Canvas.Top="110" Foreground="Green">e5</TextBlock>
  <Ellipse x:Name="e6" Fill="Black"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="130"/>
  <TextBlock Canvas.Left="0" Canvas.Top="130" Foreground="Black">e6</TextBlock>
  <Ellipse x:Name="e7" Fill="Orange"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="150"/>
  <TextBlock Canvas.Left="0" Canvas.Top="150" Foreground="Orange">e7</TextBlock>
  <Ellipse x:Name="e8" Fill="Red"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="170"/>
  <TextBlock Canvas.Left="0" Canvas.Top="170" Foreground="Red">e8</TextBlock>
</Canvas>

이상 입니다. ^^

Posted by -세티-
원글출처: http://silverlight.net/quickstarts/silverlight10/canvas.aspx
본 강좌는 위의 원글을 참고 및 번역해서 작성했으며, 글 중간중간 제 개인적인 표현이나 의견을 넣어서 각색했습니다.

Canvas 객체
(Canvas Object)


캔버스 객체는 모양을 만들기 위한 포지션과 컨트롤들을 포함하는 객체 입니다. 모든 실버라이트 XAML 파일은 루트 엘리먼트로 캔버스를 하나씩 가지고 있습니다. 이번 강좌에서 캔버스 객체와 정의에 대해 공부해 보고, 자식 객체들에 어떻게 크기를 지정하고 포지션을 잡고 추가하는지에 대해 알아보겠습니다.

먼저 캔버스에 객체를 추가해 보도록 하겠습니다.
캔버스에 객체를 추가하기 위해서는 <canvas> 태그 사이에 추가할 다른 객체를 추가해야 합니다.

예를 들어서
사용자 삽입 이미지

위의 코드를 보면 <Canvas> 테그 사이에 <Ellipse> 태그가 위치한 걸 확인할 수 있습니다. 이 Ellipse 객체는 원을 그리기 위한 객체인데 코드에 보시는 것 처럼 원 모양에 대한 속성값(Height, Width, Stroke 등)이 설정되어 있는 것을 확인할 수 있습니다. Canvas 태그는 루트 엘리먼트로서 xmlns 선언을 가지고 있게 됩니다.

Canvas에 객체를 위치 시키기 위해 필요한 속성값이 있는데 그것은 Canvas.Left, Canvas.Top, Canvas.Left가 그것입니다. Canvas의 위치 지정 속성값을 이용해서 Canvas 객체 위에 그려진 원 객체의 위치를 변경해 보도록 하겠습니다. 먼저 Ellipse 객체에 2가지 속성값 Canvas.LeftCanvas.Top을 추가합니다.

먼저 각각 "0"을 설정해 보도록 하겠습니다.
사용자 삽입 이미지

결과는 아래의 그림과 같으며, 상단 그리고 왼쪽으로 바짝 붙어 있는 것을 볼 수 있을 겁니다.
사용자 삽입 이미지

이제 위에 제시한 코드를 이용해서 왼쪽으로 50픽셀 상단에서 하단으로 50픽셀 만큼 이동시켜 보겠습니다.
사용자 삽입 이미지

코드를 수정한 후 렌더링된 결과는 아래의 이미지와 같으며, 정확히 50픽셀 이동된 것을 확인할 수 있습니다.
사용자 삽입 이미지

다음으로 z-index에 대해 알아보도록 하겠습니다.
Canvas 엘리먼트 내에 위치한 자식 객체는 모두 순서대로 렌더링 됩니다. 젤 위에 있는 것이 먼저 렌더링 되고 나면 그 다음에 위치하는 자식 객체가 렌더링 되면서 제일 처음에 렌더링된 그림 위에 덮어쓰여 집니다. 이런 식으로 표현되는 Canvas 내의 객체에 대해 그  순서를 변경하고 싶으면 zorder를 이용해서 변경하게 됩니다.
Canvas.ZIndex라고 설정하면 되며, 값이 클수록 Canvas에서 멀어지고 값이 낮을수록 Canvas에서 가깝게 위치하게 됩니다.

먼저 3개의 원을 표시할 것이므로, Canvas의 크기를 더욱 키우도록 하겠습니다.
앞에서 만들었던 crObjS.js 에서 캔버스의 크기를 가로 500픽셀, 새로 500픽셀로 변경합니다.
사용자 삽입 이미지

그 다음에 3개의 원을 추가 합니다.
사용자 삽입 이미지

이제 브라우저를 통해 원이 잘 추가 되었는지 확인합니다.
사용자 삽입 이미지

잘 되었으면 이제 코드에 ZIndex를 설정합니다. Ellipse 엘리먼트에 Canvas.ZIndex 애트리뷰트를 설정하고 ZIndex 속성에 값을 설정하면 됩니다.
사용자 삽입 이미지

렌더링 된 결과는 다음과 같습니다.
사용자 삽입 이미지

Canvas 나 Shape 그 외 다른 많은 엘리먼트들은 높이와 넓이 속성을 가지고 있으며, 특정한 값을 할당함으로써 그것을 효과적으로 이용할 수 있습니다. 이것을 확인해보기 위해 Canvas 엘리먼트에 높이와 넓이를 주고 적절한 배경색을 주도록 하겠습니다.
사용자 삽입 이미지

위에 코드를 제시하였고, 아래는 렌더링된 결과 입니다.
사용자 삽입 이미지

위의 그림에서 빨간색 영역은 Canvas의 영역이고, 회색 부분은 호스팅된 Plug-in의 영역 입니다. Canvas와 Ellipse 객체의 기본적이 높이와 넓이 값은 모두 0 이라는 것을 참고하셨으면 합니다.

마지막으로 Canvas는 또 다른 Canvas를 포함할 수 있습니다. 그것이 가능한 이유는 Canvas 또한 또 다른 객체 이기 때문입니다.
사용자 삽입 이미지

위의 코드를 참고해서 Canvas 객체 2개를 추가합니다. 그리고 각 Canvas에 적절한 컬러를 할당합니다.
브라우저를 통해 렌더링 해보면 하단의 이미지와 같은 모양이 그려진 것을 확인할 수 있습니다.

사용자 삽입 이미지

Posted by -세티-

원글출처: http://silverlight.net/quickstarts/silverlight10/xaml.aspx
본 강좌는 위의 원글을 참고 및 번역해서 작성했으며, 글 중간중간 제 개인적인 표현이나 의견을 넣어서 각색했습니다.

이전 강좌에서 작성한 파일들을 이용하여 HTML 페이지에 Silverlight 플러그인이 추가된 Silverlight 프로젝트를 생성하고, 아무런 내용이 없는 XAML 파일을 생성합니다.
먼저 SimpleXAML.xaml 파일을 생성합니다. XAML 파일에 Canvas를 생성하고, Silverlight와 XAML 네임스페이스를 마크업 합니다.

사용자 삽입 이미지


위의 코드에서 XAML 파일은 <Canvas>라는 태그로 시작되는데 xmlns 라는 어트리뷰트는 Silverlight 네임스페이스에 대한 선언이고, xmlns:x 라는 어트리뷰트는 xaml 네임스페이스 입니다.
준비된 Canvas에 우리는 어떤 도형을 그리기 위해 아래의 코드를 추가합니다.
사용자 삽입 이미지

만약 실버라이트 1.0 컨트롤이 설치되어 있지 않다면 설치해야 코드로 작성된 실버라이트 결과물을 확인할 수 있습니다.

결과는 아래의 이미지와 같습니다.
사용자 삽입 이미지

우리는 실습을 통해 Silverlight를 직접 만들어 보았습니다.
매우 쉽지 않습니까?? ^^
XAML 같은 경우는 Expression Blend 같은 툴을 이용하여 직접 생성한 후 별도의 XAML 파일로 만들어 display 되기를 원하는 HTML 파일과 같은 경로상에 두면 됩니다.

다음 시간에는 이 샘플 예제에서 사용된 <Canvas>라는 태그에 대해 살펴보도록 하겠습니다.
<Canvas> 태그는 실버라이트 애플리케이션을 생성할 때 매우 빈번하게 사용되는 중요한 녀석입니다.
Posted by -세티-
원글출처: http://silverlight.net/quickstarts/silverlight10/FileSetup.aspx
본 강좌는 위의 원글을 참고 및 번역해서 작성했으며, 글 중간중간 제 개인적인 표현이나 의견을 넣어서 각색했습니다.

앞에서 우리는 실버라이트의 각 버전별 특징과 실버라이트 결과물을 제작하는데 있어서 어떤 도구를 알맞게 이용하는지 살펴봤습니다. 설명된 내용을 모두 잘 이해했다면 우리는 이제 실버라이트를 이용한 원하는 결과물을 만들어 볼 수 있을 것이빈다. 가장 많은 이용자를 확보하고 있으며, 가장 보편적인 플랫폼인 웹에서 이용할 수 있는 무언가를 만들어 보는 것이 가장 나을 듯 합니다.

웹 기반 실버라이트를 제작하기 위해서 우리는 실버라이트 1.0을 이용하도록 하겠습니다. 웹 페이지에 실버라이트를 추가하기 위해서 일반적으로 실버라이트 프로젝트는 다음 4개의 파일을 가집니다.

- 실버라이트 플러그 인
- silverlight.js
- XAML 파일
- HTML 파일을 지원하기 위한 JavaScript 파일


시작하기 전에 먼저 실버라이트 플러그 인과 HTML 파일을 준비해야 합니다. 실버라이트 플러그 인은 다음의 링크에서 다운로드 받으면 됩니다.

실버라이트 플러그인 다운로드 : http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&displaylang=en

플러그 인을 다운로드 받았고, 설치를 완료했다면 이제 HTML 파일 하나를 생성합니다.
사용자 삽입 이미지

이제 이렇게 만들어진 HTML 페이지에 참조를 하기 위한 스크립트를 추가할 것인데 그 스크립트 파일은 다음과 같습니다.

참조할 스크립트 : Silverlight.js, crObj.js

먼저 HTLM 페이지에 실버라이트 플러그 인이 호스트될 엘리먼트를 만들고, Silverlight.jscrObj.js 에 대한 참조를 추가하게 됩니다. 여기서 Silverlight.js 파일은 멀티 플랫폼에서 실버라이트 실행을 가능하게 해주는 역할을 합니다.

Silverlight.js 파일을 얻을려면 다음의 주소에서 다운로드 받으면 됩니다.
실버라이트 1.0 SDK : http://www.microsoft.com/downloads/details.aspx?familyid=FB7900DB-4380-4B0F-BB95-0BAEC714EE17&displaylang=en

다운로드가 완료되면 설치합니다.(원하는 폴더에 설치하시면 됩니다.)
사용자 삽입 이미지

저는 D:\Program Files 에 파일을 설치 했고, 그 하위에 설치된 실버라이트 1.0 SDK 폴더에서 Silverlight.js 파일을 가져오도록 하겠습니다.
사용자 삽입 이미지
(설치된 Silverlight 1.0 SDK 경로 및 Silverlight.js 파일)


적당한 폴더를 만들고 HTML 파일과 Silverlight.js 파일을 위치 시킵니다.
사용자 삽입 이미지
(작업할 폴더로 옮겨진 Silverlight.js 파일)

자아~ 이제 기본적인 준비가 모두 완료 되었습니다. ^^
이제 준비된 HTML 파일을 열고, <head> 영역에 다음의 마크업을 추가 합니다.
사용자 삽입 이미지

마크업을 추가 했으면 이제 crObj.js라는 빈 파일을 하나 만들어 놓고 마크업을 마찬가지로 <head> 영역에 추가 합니다.
사용자 삽입 이미지
(빈 문서로 생성한 crObjS.js )

사용자 삽입 이미지
(<head> 영역에 추가된 Silverlight.js와 crObjS.js에 대한 마크업)

이제 준비된 HTML 페이지에 실버라이트가 표시될 수 있는 영역을 잡아줄 것입니다. <div> 태그를 이용하여 그 영역을 표시할 것이며, id는 firstSilverlight로 하겠습니다.
사용자 삽입 이미지

만약에 실버라이트가 하나가 아닌 그 이상의 실버라이트를 화면에 표시하고자 한다면 영역을 또 잡아주고 다른 ID를 부여하면 됩니다.

이제 실버라이트를 div 블럭에 출력해 주기 위해 필요한 자바스크립트 코드를 HTML 파일에 추가합니다.
사용자 삽입 이미지

이제 HTML 파일에 대한 작업은 모두 완료 되었습니다. 그럼 이전에 만들어 두었던 crObjS.js 파일을 열어서 실버라이트 생성을 위한 작업을 할려고 합니다. 아래의 그림과 같이 코딩을 완료 합니다.
사용자 삽입 이미지
이 스크립트는 몇몇의 파라미터를 포함하고 있는데 플러그 인의 높이나 넓이 실버라이트 콘텐트를 포함하는 XAML파일의 이름, 그리고 windowless와 같은 특정한 값을 설정할 수 있습니다.

windowless란?
- 제가 이해하기로는 실버라이트 플러그인이 위치할 영역과 함께 렌더링 되느냐 안되느냐의 차이가 같습니다. 즉 isWindowless를 false로 설정하면 실버라이트 플러그 인이 위치할 영역을 먼저 렌더링 하고 그 다음에 실버라이트 플러그 인을 렌더링하여 위치시키는 것이고, true로 설정하면 실버라이트가 위치할 영역 즉 <div> 가 렌더링 되면서 실버라이트 까지 같이 렌더링 되는 것을 말하는 것 같습니다. 그것에 대한 구분은 opacity값을 계산해서 구분되는 것으로 보입니다. 이것에 대한 부연 설명은 아래의 경로에서 읽어보시면 됩니다.
isWindowless 속성에 대한 이해 :
http://msdn.microsoft.com/en-us/library/bb412380.aspx

자아~ 이제 실버라이트를 위한 HTML 파일과 js 파일이 준비되었으므로 실버라이트 콘텐트를 생성할 차례 입니다.

먼저 앞에서 생성했던 HTML 파일과 같은 디렉토리 상에 SimpleXAML.xaml 파일을 생성합니다. 그리고 이 Silverlight에 대한 이벤트 핸들링과 같은 행위를 하고 싶다면 그것에 대한 스크립트 파일을 별도로 만들어서 <head> 영역에 스크립트 마크업을 추가합니다. 저는 이 파일의 이름을 SimpleEventHandle.js 라고 하겠습니다.
사용자 삽입 이미지

여러 개의 실버라이트 플러그인을 생성하고 싶다면 앞에 설명된 것을 참고하여, 실버라이트 JS를 만들고, div 마크업을 이용하여 호스팅될 영역을 생성하고, 다시 그것을 호스팅할 js 파일을 생성하고, 다시 HTML 페이지의 <head> 영역에 js 참조 마크업을 추가하면 됩니다.
Posted by -세티-