2011-05-22 76 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)转换为位图图像,并将其绘制到网格中相应的矩形上。一旦绘制出来,由于图形子系统的保留模式性质,它再也不需要担心了。

这样的效果不容易写,但它们也不是不可能的,它们可以很有趣。你一定会学到很多技巧,在编写其他不那么“花哨”的应用程序时会为你提供很好的服务!