Flex <fx:script>最佳实践?</fx:script>

时间:2010-11-10 15:57:12

标签: flex actionscript-3 flex4

只是想询问在使用包含时做什么(即<fx:Script source="includes/my_as3_file.as" />

问题在于,在我的所有文件中,我使用的是仅限类的修饰符,例如私有,公共保护和FB,有时会对这些修饰提出抗议。一位朋友告诉我,他所做的是将文件扩展名更改为.ias,但这样一来,他就会丢失代码突出显示,内容辅助和启用断点。

感谢。

4 个答案:

答案 0 :(得分:2)

我喜欢使用名为ViewHelper(发布链接)的东西

http://www.kensodev.com/2010/08/19/keep-your-mxml-files-neat-with-view-helpers/

这样,MXML文件始终是纯MXML,并且视图助手是耦合的,并且引用了视图,这意味着您可以在视图助手中执行类似这样的操作

myView.dataGrid.visible = false;

当然还有很多东西。

即使我使用RobotLegs的调解器,我仍然使用视图助手来处理与视图有关的所有操作,例如动画,隐藏和穿鞋,状态变化等等。我只使用调解器来调解RobotLegs框架(重新调度事件)并监听eventDispatcher。

答案 1 :(得分:1)

就个人而言,我不是使用包含的粉丝。正如您所提到的,它往往会混淆视图中实际发生的事情,并且很难快速扫描文件并理解它的行为。

我一直遵循的最佳做法之一是将<fx: Script />块中的代码量减少到几乎没有。

如果您使用的是包含文件,则表明您的视图非常庞大,这可能导致代码重用不良,并且难以编写可测试的代码。

相反,请考虑使用Presentation Model模式将逻辑移出到单独的类。或者,还有Mediator模式,但是我个人发现这会导致更多的耦合代码 - 尽管这可能归结于我糟糕的执行,而不是模式的失败。

答案 2 :(得分:1)

  1. 使用背后的代码! 或
  2. [mxml_file] ActionScript文件名的AS.as。 ex MXML:MyView.mxml和as文件MyViewAS.as 然后它看起来像<fx:Script source="MyViewAS.as" />

答案 3 :(得分:0)

在我看来,将.as文件重命名为.ias是可以提出的最糟糕的解决方案之一(这太可怕了)。我也有点不同意Marty,因为在Flex 4中,体系结构与Flex 3不同(虽然Spark是建立在MX之上的 - 如果我们谈论的是Flex 3,那么我同意Marty所说的话)。在Flex 4中,Skin现在被认为是“视图”,使用视图的类是“控制器”...这意味着事情现在比Flex 3更好地分离,其中组件有点玩视图和控制器(http://www.slideshare.net/saurabhnarula/flex-4-skinning-2634949)的作用。

回到最初的问题:Flash Builder确实不是很完美,但是如果你知道你的代码中没有任何错误并且它继续向你抛出一些奇怪的东西,那么只需尝试关闭它然后重新开始(之后清理你的项目)。每当我将.as文件设置为我的MXML组件的源时,我喜欢将文件放在MXML类旁边(例如:MyMXMLComponent.mxml和MyMXMLComponentAS.as,两者都处于同一级别 - source =“MyMXMLComponentAS.AS “)。这99%的时间工作正常,但很少,我可能也收到了Flash Builder的一些奇怪的错误(通常通过关闭它并在之后清理项目来解决 - 在某些情况下,实际上有一个错误我的代码似乎完全混淆/崩溃编译器并使它抛出一些非常无意义的错误消息,所以一定要确保你的代码是正确的。)

就个人而言,我建议不要使用.as文件,而是尝试使用“代码隐藏”方法(在Google / Adob​​e上搜索更多相关信息 - 我想发布一个链接,但是因为我'对于一个新用户,我只限于1个链接/帖子......哈哈)。使用后面的代码,你肯定永远不会遇到使用.as文件遇到的问题,你肯定不会遇到代码提示问题。如果您之前从未使用过代码,那么它在开始时可能会感到“奇怪”,但您会习惯它并且您肯定不想再次以“旧方式”编写代码。