My Opera is closing 3rd of March

NAM GIÀ

CHÚ Ý: BLOG NAM GIÀ ĐÃ CHUYỂN SANG ĐỊA CHỈ http://namdh.wordpress.com

Silverlight - Step by Step (phần 9)

,

Tạo hoạt hình với các thẻ Silverlight

Các bước cơ bản để làm một hoạt hình
Bước 1: Chọn một đối tượng để làm hoạt hình
Bước đầu tiên là bạn phải chọn một đối tượng nào đó để làm hoạt hình, ví dụ bạn có thể chọn một hình ellipse. Ví dụ sau sẽ tạo một hình ellipse với nền đen.


<Canvas
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Ellipse x:Name="ellipse"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="30"
      Fill="black" />
</Canvas>



Nhớ là hình ellipse đã được đặt tên là ellipse: x:Name="ellipse"
Hình ellipse này cần phải được đặt tên, (chi tiết hơn, bạn cần đặt tên cho nó để sau này có thể tham chiếu lại trong một hoạt cảnh được định nghĩa ở nơi khác trong file XAML). Giờ bạn đã có một đối tượng để tạo hoạt hình, bước tiếp theo là tạo một EventTrigger để chạy hoạt hình này.

Bước 2: tạo một EventTrigger
Một EventTrigger cho phép thực hiện một thao tác khi có một sự kiện nào đó xảy ra. Sự kiện này được chỉ ra bởi thuộc tính RoutedEvent, và vì bạn muốn EventTrigger bắt đầu một hoạt hình nên hành động mà nó sẽ làm sẽ là một BeginStoryboard.
Bạn cũng cần quyết định sự kiện nào sẽ kích hoạt hoạt cảnh (animation) của bạn. Trong Silverlight 1.0, việc chọn lựa tương đối đơn giản, vì các đối tượng EventTrigger chỉ hỗ trợ một sự kiện duy nhất là Loaded. Đặt giá trị cho thuộc tính RoutedEvent thành Canvas.Loaded sẽ làm hoạt hình chay khi Canvas chính được nạp. Bạn có thể xem ví dụ sau:


<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>
          
          
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>
  </Canvas.Triggers>
  
  <Ellipse x:Name="ellipse"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="30"
      Fill="black"/>
</Canvas>



Giờ bạn đã sẵn sàng để tạo một StoryBoard và một hoạt hình.

Bước 3: Tạo StoryBoard và hoạt hình
Một StoryBoard có thể được dùng để mô tả và điều khiển một hoặc nhiều hoạt hình. Trong ví dụ này, chúng ta sẽ dùng một hoạt hình đơn. Trong Silverlight, bạn có thể xây dựng hoạt hình bằng việc sử dụng các thuộc tính của một đối tượng. Dùng DoubleAnimation để thay đổi thuộc tính Canvas.Left của đối tượng Ellipse. Bạn dùng DoubleAnimation bởi vì Canvas.Left có kiểu Double.
Để một hoạt cảnh hoạt động, bạn cần chỉ ra tên của đối tượng trong thuộc tính TargetName (Storyboard.TargetName="ellipse"), tên thuộc tính sẽ được thay đổi trong TargetProperty (Storyboard.TargetProperty="(Canvas.Left)"), một giá trị để cập nhật (To="300"), và khoảng thời gian mà việc thay đổi diễn ra (Duration="0:0:1"). Thuộc tính Duration chỉ ra khoảng thời gian mà hoạt cảnh diễn ra từ lúc đầu cho đến lúc kết thúc. Giá trị 0:0:1 có nghĩa là 0 giờ, 0 phút và 1 giây.

<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>
            <DoubleAnimation 
              Storyboard.TargetName="ellipse"
              Storyboard.TargetProperty="(Canvas.Left)"
              To="300" Duration="0:0:1" />
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>
  </Canvas.Triggers>
  <Ellipse x:Name="ellipse"
      Height="20" Width="20" Canvas.Left="30" Canvas.Top="30"
      Fill="black"/>
</Canvas>


Bạn dùng DoubleAnimation là vì thuộc tính mà chúng ta đang dùng để tạo hoạt hình (Canvas.Left) có kiểu Double.
Vậy là bạn đã tạo ra hoạt hình Silverlight đầu tiên, giờ đây chắc hẳn bạn đã thấy Silverlight thú vị hơn rất nhiều bigsmile

Các kiểu hoạt hình khác
Silverlight cũng hỗ trợ tạo hoạt hình bằng việc chuyển đổi (animating) màu sắc (ColorAnimation) và điểm (PointAnimation).

10 năm Internet Việt NamTruyện cười

Comments

Unregistered user Wednesday, March 19, 2008 3:53:53 AM

Anonymous writes: cảm on bạn , Bài viết của bạn rất tuyệt.Mình sẽ nghien cứu thêm .. Nếu gặp rắc rối .. mong bạn giúp đỡ :)

namdh Wednesday, March 19, 2008 4:32:27 AM

tất nhiên rồi smile

Unregistered user Tuesday, June 10, 2008 12:32:31 PM

Anonymous writes: anh Nam già thân, anh có thể nói thêm về cách chạy một hoạt cảnh được k ah? có thể chạy trên animation workspace từng frame như flash được k ah?

Unregistered user Friday, August 1, 2008 3:06:17 AM

Anonymous writes: Chao anh, em cung la nguoi dang nghien cuu Silverlight, vo tinh lac vao blog cua anh, thay cac bai viet rat hap dan. Em doc qua 9 phan roi van chua thay phan nao noi ve DataBinding de dua dua lieu vao cac control, mong anh se cap nhat tiep

namdh Sunday, August 3, 2008 3:56:37 AM

Em xem thêm phần Silverlight 2 nhé
February 2014
M T W T F S S
January 2014March 2014
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