我是AS 3开发的新手......事情是我总是遇到如何构建应用程序状态的不同视图的问题?
你是否使用MVC框架?我看过一些puremvc,robotlegs但是我们的flash项目通常相对较小,所以我想知道它是不是一种矫枉过正的行为:)。
答案 0 :(得分:4)
设计模式很好,只要你不试图使用它们就可以使用它们。我总是将我的观点与模型区分开来,但很少有足够大的东西来保证像PureMVC这样流畅的实现。在大型项目上然后是的,它们可能是有益的。困难的部分是决定“大”如何大到足以使用它们。可能需要经验才能做出判断。
无论如何只要确保对象松散耦合,并且你的模型和视图不是同一个。通常不是扩展MovieClip而是使用合成,而是让拥有一个MovieClip。对我来说,我认为它有助于将视觉效果与数据区分开来。
答案 1 :(得分:2)
如果您打算将代码交给其他人,那么框架可能特别有价值。无论您选择哪种框架,您都会引入一组共同的预期关系,人们可以从中建立对代码库的理解。
如果视图逻辑在很大程度上是顺序的,或者至少是模态的,那么一种简单的非框架组织模式就是将您的视图分组为“页面”,并让一个控制器一次管理哪个页面在舞台上来自任何地方的模型数据。
答案 2 :(得分:2)
老实说,我不喜欢将传统设计模式应用于Flash开发。如果您正在编写纯类,那么您可以执行任何您喜欢的操作,但如果您将类链接到可视元素(如MovieClips),我会发现构建事物的正确方法(即最好避免重复工作的方式和保留关注点的分离)由你需要堆叠和/或嵌套显示时间线决定。
换句话说,我发现最好在显示级别处理最终需要在相同或不同时间轴中的内容,以及最终需要嵌套或不嵌套的内容,然后找出哪个课程之后应该相互扩展或组合。
但请注意,这是假设你正在制作逻辑与显示元素紧密耦合的东西,这就是我认为Flash闪耀的领域。当然,如果你正在制作一个没有动画或皮肤或任何其他的贷款模拟器,那么只需使用MVC模式然后在顶部拍一个静态显示层就足够了,每个按钮指向一个C,每个文本框指向一个V.但是,如果您在Java中使用相同的东西,或者使用JS驱动的HTML表单,或者其他任何东西,那么这正是您要做的。这个答案中的建议是我发现当你制作各种视觉效果最好的东西时,这些建议最好不要尝试除Flash以外的任何东西。
答案 3 :(得分:1)
如果你真的是AS3的新手,并且计划进行“纯粹”编码(既不使用Flash创作工具推广的图形方法,也不进入Flex世界),我建议你不要浪费你的时间AS3然后转到Haxe ...
Haxe不是很出名,所以你得到的唯一意见来自使用它的人...当然有一点偏见,但你可以阅读他们的陈述here,here和here ......
现在谈到模式和框架,有很多可能性......设计模式是一系列问题的解决方案......不要试图将你遇到的所有问题转化为适合的问题你知道的模式......
在我的书中,软件设计有一个基本原则:DRY& KISS - 我承认仍然有很多工作在后者... :) ...对于更具体和指导性的原则,我坚持SOLID和GRASP ...如果你仔细阅读并反思你所知道的(好的)模式,你可能会发现,它们包含所述原则......不要过度使用模式......不要过度使用任何工具......使用任何工具是最好的工作... 恕我直言,纯粹的AS3适合极客......而且我喜欢做纯AS3 ......或者至少我做过......但是随着时间的推移,它无效且无益......它有利于开发框架和库。 ..但也不适用于应用程序... Haxe适用于分布式跨平台应用程序(以及极客),“花式”可视应用程序的Flash创作方法,以及具有普遍存在的UI概念的经典应用程序的Flex ......