我在哪里可以学习这种类型的高级行为代码?

TCM*_*TCM 0 c# silverlight silverlight-3.0 silverlight-4.0

最近我遇到了Pete Blois的名为Explode的行为.这是链接: -

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

当您单击网格时,即使Silverlight没有真正的3D效果,网格也会像真正的3D效果一样爆炸.

我研究了代码但无法获得行为的核心逻辑.任何人都能解释一下PrepareShards的功能是什么,ApplyForce在做什么?Shards课的目的是什么?我认为它试图模拟一个有X,Y和Z的点.我研究了半小时的代码,但却无法完全了解它在做什么.我知道我不需要理解这背后的逻辑.但是,如果我想创建一些像这样的高级效果怎么办?研究引擎盖下的内容总是好的.有没有人写过博客文章,解释这个代码是什么,或者作者教授这类现实生活的东西?或者,如果你们都有时间,你能解释一下它在做什么吗?

提前致谢 :)

Ric*_*key 5

作者为您提供了代码,但未对其进行评论.这把它变成了一个谜题!

这段代码的工作方式是:

  • 这是一个Behavior使用System.Windows.Interactivity
  • 该行为在XAML中附加到您要爆炸的元素
  • Explode 挂钩鼠标事件,以便在单击时知道鼠标位置
  • StartExplode它第一次打电话PrepareShards
  • PrepareShards创建了一个Popup其中包含一个Grid含有的矩阵Rectangle元素
  • 新的Popup外观与原版完全相同,但它不再是互动的:它是假的
  • 它通过将原始交互元素设置Opacity为零来"隐藏"它
  • A Shard是每个的包装器,Rectangle用于跟踪其位置和动画
  • ApplyForce 被调用来为所有矩形设置动画

ApplyForce做什么?物理.这只是公式.

所以这只是伪造和巧妙的2D和3D图形的组合.一旦你理解了它的工作方式的总体结构,各个步骤就不那么令人生畏了:只是弄清楚如何让API做你想做的事情.

例如,作者需要将原始交互式框架元素的微小网格区域(2,3)转换为位图图像并将其绘制到网格中的相应矩形上.一旦绘制,由于图形子系统的保留模式特性,它再也不用担心了.

像这样的效果不容易写,但它们也不是不可能的,它们可以很有趣.在编写其他不那么"花哨"的应用程序时,您肯定会学到很多能够很好地为您服务的技术!