您的位置:首页 > 其它

Silverlight——简单3D效果的探究

2010-09-13 00:03 190 查看
3D:

 在MSDN上有个关于silverlight的3D展示,点击两边的图片时,图片转换会出先立体视觉动画效果:
代码

[code]            //zindex参数
int tempindex = Canvas.GetZIndex(AR);
Canvas.SetZIndex(AR, Canvas.GetZIndex(BR));
Canvas.SetZIndex(BR, Canvas.GetZIndex(CR));
Canvas.SetZIndex(CR, tempindex);
string temptag = AR.Tag.ToString();


这是向右移动时Zindex修改情况,但向左时的又是另一情况!
还有个问题,就是如何判断图片向左还是向右?跟据上面的代码,可以用同样的方式处理这个问题。
CR.MouseLeftButtonDown += new MouseButtonEventHandler(btnMouseLeftButtonDown);
CR.MouseLeftButtonDown -= new MouseButtonEventHandler(btnMouseLeftButtonDown);
为不同位置的图片移除和绑定不同的事件。这是方法之一,同样还可以这样做:
  为每个图片设定tag,用于存放位置的信息。然后根据触发事件的sender判断当前图片的位置。动画完成后利用上面轮换的方法重新
设定图片的tag。(因为name不能随便修改,所以使用tag)

//tag用于判定动画
string temptag = AR.Tag.ToString();
AR.Tag=BR.Tag;
BR.Tag = CR.Tag;
CR.Tag = temptag;


结束:
  根据以上的信息,我想您应该明白我是如何设计和实现这个MSDN的“3D”效果了。别高兴的太早,还有很多东西需要完善的。比如:
如何让判断左右移动代码更简洁?如何处理动画未完成时,用户又点击动画了?如何处理以上的代码的顺序,是在移动前还是在移动完成
后?等等等。以上问题我都实现和优化了,但不知与MSDN上的代码有多大的差距呢?
  我建议您自己思考一下,因为我在设计的时候很多东西有的方法并不容易实现的,还有的处理方法可能会是多样的。
OK,这就是一个从未见识过这方面内容和没有任何参考的人关于简单“3D”实现的思考。各位不要见笑。
  如果您有何这方面的经验和新的想法,不妨说出来,让我也学习学习。

  

  
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: