如何在Flex应用程序中创建辅助函数

时间:2011-03-09 14:34:54

标签: flex actionscript singleton helper

我有一个flex应用程序,我正在使用cairngorm结构 -

src / com / mysite / editor / model /包含以下两件事

EditorModelLocator.as(Singleton Enforced Application Globals), EditorGlobalConstants.as(包含所有常量),如下所示

public static const SUPPORT_PHONE:String = '800-865-7496';
public static const SUPPORT_EMAIL:String = 'support@mysite.com';

我想知道放置辅助方法的最佳位置在哪里。我需要这些是我可以在单例强制类之外使用的方法。把它放在全局常量中是否有意义?唯一反对的是,我总是以同样的方式使用EditorGlobalConstants:

EditorGlobalConstants.SUPPORT_PHONE

'辅助函数'的示例如下:

public var blank(value:String):Boolean {
  if( value == '' || value == null ) return true;
  return false;
}

我可以在EditorGlobalConstants中存储所有这些信息,但我想知道是否可能会更好的EditorHelpers.as,以及我将如何实例化/使用该解决方案?

谢谢!

Andrew Thorp

2 个答案:

答案 0 :(得分:1)

不熟悉cairngorm如何做事,但在AS3中,函数不必是类的一部分。

例如,您可以拥有一个名为helperFunction.as的文件,其内容为:

package my.package {
  public function helperFunction(arg1:Object, arg2:String):void {
    // Do stuff
  }
}

然后只需像导入其他任何内容一样导入该方法:

import my.package.helperFunction

您可以在代码中使用它。

只需选择一个对生存方法有意义的包(可能在同一个包中,它定义了帮助的对象)。

答案 1 :(得分:0)

如果您不仅要在单例类中使用辅助方法,最好将它们放在层次结构的上方。你可以自己轻松找到那个地方。我们试试吧:

  1. 将您的应用程序(想象/纸张/无论如何)分解成一个盒子。每个班级都是一个单独的盒子。
  2. 将它们放入结构中。你只需要看看哪些盒子放在哪些盒子里面。
  3. 标记box-classes,您将在哪里使用这些方法。
  4. 找到最高级别,你将在哪里使用它们并将你的课程安排在那里。
  5. 让我们看一个例子..假设你有这个结构:

    ToplevelApplication
    |-BoxAtLevel_1
    | |-BoxAtLevel_2
    ...
    

    如果我希望我的助手只在BoxAtLevel_2中使用,我会把它们放在那里:

    |-BoxAtLevel_1
    | |-BoxAtLevel_2
    | |-Helpers
    

    等等..如果你有任何麻烦 - 把你的结构放在这里,我会帮助你。

    另外,关于EditorHelpers.as ..这是一个实例级别的东西,还是类级别的东西?这就是设置你使用它们的方式。