0

我想知道在这种情况下什么被认为是最佳实践(或其他人将如何解决这个问题)。

我正在尝试使用 MvvmCross 创建一个简单的游戏,它将(希望)在不同的平台上运行。实际上,我以前只有 Windows Phone 开发经验,现在我正在尝试使用 WinRT 应用程序“更进一步”(下一步......Android!)。

即使是一个简单的游戏,我也需要在这里和那里创建一些动画,以使事情变得更有趣/更流畅。

在 WP7 上,我用于创建故事板(使用 Blend)并使用行为来触发动画以响应值变化、正确答案等,所有这些都避免了代码隐藏技巧。我简单地认为我也可以在其他平台上以一种或另一种方式轻松地做同样的事情,但我认为我必须重新考虑很多细节=>(今天我了解到 WinRT 不支持行为和事件触发器)

为了完整起见,我将写两个有问题的场景示例:

1)我有一些隐藏的元素(透明),我希望它们仅在用户单击按钮后显示。(所以“流程”将类似于:View -> VM -> PropertyChanged -> Trigger(?))

2)我需要根据方法的执行结果触发不同的动画(这将检查用户的答案,所以我会有一个“赢家”或“输家”动画)。

所以我的问题是:

1) 如何解决 WinRT 应用程序中的这些问题?有最佳实践吗?我正在寻找这个项目(http://winrtbehaviors.codeplex.com/),但我不知道它是否适合 MvvmCross。

2)我知道我会找到一种(希望是简单的)方法来在 Android 和 iOS 上重现类似的行为(和动画),我能睡得安稳吗?

我希望我已经成功地解释了自己。谢谢大家=)

4

1 回答 1

3

我不知道它是否适合 MvvmCross。

对于每个平台,显示动画的挑战以及将事件挂钩到 ViewModel 属性和命令的挑战都是特定于平台的问题。

这些都是特定于 View 的问题,因此您应该能够在每个 View 层(在单个 UI 项目中)解决它们。

如何解决 WinRT 应用程序中的这些问题?有最佳实践吗?

对于 WinRT,至少有人使用过 nuget 的行为 - http://slodge.blogspot.co.uk/2013/02/behaviors-for-windows-8-winrt-store.html

在 Android 和 iOS 上重现类似的行为?

根据我的经验,绑定到 Android 和 iOS UI 事件比挂钩到 XAML 事件更容易——通常你不需要EventToCommand类型适配器,因为 Mvx 绑定可以直接处理事件。

(和动画)

动画取决于每个平台/UI。Android 和 iOS 都已经建立了制作动画的方法。

iOS 动画特别容易做而且特别漂亮——你需要一些 C# 代码来做这些,但这些代码会比 XAML 短得多。


带着所有这些问题,我建议你继续努力……你应该能够在不改变共享核心的情况下实现它们——你应该能够一次克服一个平台的挑战。

祝你容易/难睡的问题好运。

于 2013-04-30T13:39:10.600 回答