2011-05-22 74 views
0

最近我遇到了這個名爲爆炸的皮特布洛瓦的行爲。這是鏈接: -我在哪裏可以學習此類高級行爲代碼?

http://blois.us/blog/2009/07/explode.html

當你點擊電網只是爆炸看上去就像即使Silverlight不具有真正的3D效果真實的3D效果的網格。

我研究了代碼,但無法獲得行爲的核心邏輯。任何人都可以解釋一下PrepareShards,ApplyForce的功能是什麼? Shards課程的目的是什麼?我認爲它試圖模擬一個有X,Y和Z的點。我研究了1/2小時的代碼,但是完全不知道它在做什麼。我知道我不需要了解這背後的邏輯。但是,如果我想創建一些像這樣的高級效果呢?研究發生了什麼事情總是很好的。有沒有人寫過博客文章解釋這個代碼或作者教這種現實生活中的東西的書是什麼?或者如果你們都有時間,你可以向我解釋它在做什麼?

在此先感謝:)

+1

你可以發佈你想解釋的代碼,所以人們不必去尋找它?歡呼 – WestDiscGolf 2011-05-22 18:09:14

+0

@WestDiscGolf:我想我已經在上面提到了哪些部分我無法理解。乾杯! – TCM 2011-05-23 03:11:06

回答

5

作者給你的代碼,但它沒有評論。這將它變成一個謎題!

此代碼的工作方式是:

  • 這是一個Behavior使用System.Windows.Interactivity
  • 的行爲附着在XAML到要爆炸
  • Explode元素掛鉤的鼠標事件,所以它知道點擊鼠標時的位置
  • StartExplode它首先撥打PrepareShards
  • PrepareShards創建一個Popup含有Grid包含Rectangle元素
  • Popup長相酷似原來的,但它不再是交互式的矩陣:這是假的
  • 它通過設置其Opacity「隱藏」了原來的互動元素零
  • 一個Shard是每個Rectangle周圍的包裝,以跟蹤其位置和動畫
  • ApplyForce被稱爲動畫所有的矩形

什麼是ApplyForce在做什麼?物理。這只是公式。

所以這只是一個麪包和巧妙的2D和3D圖形的結合。一旦你理解了它的工作原理的整體結構,單個步驟就不那麼令人生畏了:只需弄清楚如何讓API去做你想做的事。

例如,作者需要將原始交互式框架元素的小網格區域(2,3)轉換爲位圖圖像,並將其繪製到網格中相應的矩形上。一旦繪製出來,由於圖形子系統的保留模式性質,它再也不需要擔心了。

這樣的效果不容易寫,但它們也不是不可能的,它們可以很有趣。你一定會學到很多技巧,在編寫其他不那麼「花哨」的應用程序時會爲你提供很好的服務!