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

问题描述 投票:0回答:1

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

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

当您单击网格时,即使Silverlight没有真正的3D效果,网格也会爆炸,看起来像真实的3D效果。

我研究了代码,但无法获得行为的核心逻辑。有人可以向我解释PrepareShards,ApplyForce的功能是什么吗?另外,碎片类的目的是什么?我认为它正在尝试模拟一个具有X,Y和Z的点。我研究了1/2小时的代码,但完全无法理解它在做什么。我知道我不需要了解其背后的逻辑。

但是如果我想创建一些高级效果呢?研究内幕到底是怎么回事。有没有人写博客文章来解释这段代码是什么,或者是作者教这类现实生活的书?或者,如果大家有时间,您可以解释一下我在做什么吗?

c# silverlight silverlight-4.0 silverlight-3.0
1个回答
5
投票

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

此代码的工作方式是:

  • 它是使用BehaviorBehavior
  • 该行为在XAML中附加到您要爆炸的元素上
  • [System.Windows.Interactivity钩住鼠标事件,以便单击时知道鼠标的位置
  • Explode中,它首先调用StartExplode
  • [PrepareShards创建一个PrepareShards,其中包含一个Popup,其中包含一个Grid个元素的矩阵
  • 新的Rectangle看起来和原始的完全一样,但是不再是交互式的:它是伪造的
  • [通过将其Popup设置为零来“隐藏”原始交互元素
  • Opacity是每个Shard的包装,以跟踪其位置和动画
  • Rectangle被称为动画所有矩形

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

因此,这只是伪造和巧妙的2D和3D图形的组合。一旦了解了其工作原理的总体结构,各个步骤就不再那么艰巨:只需弄清楚如何使API来完成您想做的事情即可。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.