我可以在 AS3 中操作来自多个 类 的单个数组吗?
Can I manipulate a single array from multiple classes in AS3?
我有一个 class,其中包含一个数组。我似乎能够从多个 classes 中很好地操纵该数组,但它并非没有错误。在我的调试工作中,我遇到了 this 这让我认为我正在尝试做的是 "wrong" 方式。我是否理解我 可以 从多个 class 访问数组(通过 getter/setter 函数或使它成为 public 属性 ) 但如果它由一个 frame/loop/tick 中的 2 个不同的 class 操作,那么数组 "reference"(或其他)将不会在所有 "references" 中保持最新?
如果我理解正确,一个简单的 "yup" 就可以了。如果我遗漏了什么,请帮忙。
关于如何构建程序以免运行陷入此类问题的任何提示?
没有。 AS3 主循环是同步的,因此您不能在同一时间设置该数组时遇到两个不同的 classes 冲突,除非它们在决定更改什么时都不会使用其当前状态,例如存储动作基于该数组的数据在将控制权返回到主事件循环后执行。否则,如果您在多个 classes/instances 中有多个事件侦听器,它们都侦听同一个事件,它们都会以某种方式排队(详细信息取决于添加事件侦听器顺序、显示列表结构、侦听器类型 capture/bubble 如果适用等),并且当某个 class 获得其事件侦听器 运行 时,可以确定所讨论的数组不是在其他地方操作,而是在其自己的事件侦听器中操作。因此,对于普通的事件侦听器,您可以安全地对任何类型的共享变量使用简单的访问模型。
Worker
是另一回事,它们使用单独的线程,因此是真正的并行,因此需要额外的安全性来计划和实施访问同一实体以进行读写的并行进程。
更新:我已经阅读了引用的答案并发现它令人困惑。这意味着如果您不根据某些全局变量的内容定期更新某些内容,如果您需要它立即更新自身,则必须告诉显示实体全局数据已更改。这不是确切的冲突,而是如果您的视图未从模型更新其数据,则应用程序之间的状态不一致。这与其说是实际的访问冲突,不如说是设计缺陷。略过。
我有一个 class,其中包含一个数组。我似乎能够从多个 classes 中很好地操纵该数组,但它并非没有错误。在我的调试工作中,我遇到了 this 这让我认为我正在尝试做的是 "wrong" 方式。我是否理解我 可以 从多个 class 访问数组(通过 getter/setter 函数或使它成为 public 属性 ) 但如果它由一个 frame/loop/tick 中的 2 个不同的 class 操作,那么数组 "reference"(或其他)将不会在所有 "references" 中保持最新?
如果我理解正确,一个简单的 "yup" 就可以了。如果我遗漏了什么,请帮忙。
关于如何构建程序以免运行陷入此类问题的任何提示?
没有。 AS3 主循环是同步的,因此您不能在同一时间设置该数组时遇到两个不同的 classes 冲突,除非它们在决定更改什么时都不会使用其当前状态,例如存储动作基于该数组的数据在将控制权返回到主事件循环后执行。否则,如果您在多个 classes/instances 中有多个事件侦听器,它们都侦听同一个事件,它们都会以某种方式排队(详细信息取决于添加事件侦听器顺序、显示列表结构、侦听器类型 capture/bubble 如果适用等),并且当某个 class 获得其事件侦听器 运行 时,可以确定所讨论的数组不是在其他地方操作,而是在其自己的事件侦听器中操作。因此,对于普通的事件侦听器,您可以安全地对任何类型的共享变量使用简单的访问模型。
Worker
是另一回事,它们使用单独的线程,因此是真正的并行,因此需要额外的安全性来计划和实施访问同一实体以进行读写的并行进程。
更新:我已经阅读了引用的答案并发现它令人困惑。这意味着如果您不根据某些全局变量的内容定期更新某些内容,如果您需要它立即更新自身,则必须告诉显示实体全局数据已更改。这不是确切的冲突,而是如果您的视图未从模型更新其数据,则应用程序之间的状态不一致。这与其说是实际的访问冲突,不如说是设计缺陷。略过。