AS3设置和管理两个级别的状态

时间:2014-01-04 08:07:30

标签: actionscript-3 exception actionscript status getter-setter

假设我有一个具有以下可能性的二传手:

  1. setter将值赋给局部变量(常用)。
  2. 由于在运行时确定的另一个条件,setter无法将值分配给局部变量。由于用户的决定,缺少任务和条件被认为是应用程序的正常操作。
  3. setter遇到应用程序错误。
  4. 我正在讨论两个解决方案,想知道是否有更好的想法:

    一个。使用状态类来保存#1或#2的结果,使用try / catch指示#3。 B.使用try / catch表示#2或#3,不同的类表示#2和#3之间的差异。

    我遇到的问题是,每次有财产分配时,都需要检查状态。

    我遇到的问题是,try / catch似乎应该为意外的应用程序错误保留,而不是由于用户交互而导致的预期错误。

    我觉得没有办法使用Proxy类。

    有关A vs B或其他选项的任何意见?还应该提到我试图避免使用事件监听器。

1 个答案:

答案 0 :(得分:1)

不是100%肯定你正在尝试做什么,但如果你试图获得调用setter的结果(看看发生了什么类型的错误),你可以:

1)使用事件或信号来指示问题:

foo.addEventListener(MyEvents.APP_ERROR, this._handleError);
foo.setter = bar;

2)将setter更改为具有返回值的函数:

public function setFoo( bar:Bar ):ErrorType;

3)使用在遇到问题时设置的lastError属性:

foo.setter = bar;
if( foo.lastError != ErrorType.NONE )
    // do something