Actionscript 3.0:为什么分离用于从对象本身移动对象的代码(例如Ball和Ball Mind)是个好主意

2 oop flash actionscript object actionscript-3

我的问题几乎就在标题中,为什么我继续阅读actionscript 3.0,在编写代码时将"思想"从"对象"中分离出来是一个好主意?

感谢您的帮助,这让我感到困惑.

Mar*_*rty 6

如果你问为什么图形与定位,运动和物理分离; 拿这棵树,我画了:

在此输入图像描述

在树中,您将看到它Entity有两个属性:

  1. 图形 - 实体应该是什么样子.
  2. 身体 - 实体应该在哪里.

向下移动,你会发现有几个东西可以扩展Entity- 最值得注意的是PlayerEnemy类.

将我的Entity课程扩展到上面,我可以很容易地改变应该用作的内容graphics,并且提供稍微不同的内容bodies.例如,玩家和敌人将具有明显不同的外观,并且Tree该类将不需要使用Body处理诸如速度之类的值,因为它不移动.

以下是上述的一些优点:

  1. 我们可以创建没有图形的实体,从而节省性能和内存.
  2. 我们可以使用不同类型的图形,而不是必须坚持,MovieClip如果你已经扩展MovieClip了你的Entity课程.
  3. 我们可以在Graphics类中添加额外的逻辑,例如能够轻松地将Sprite或MovieClip转换为精灵表以获得更好的性能.
  4. 图形将更易于管理和更轻量级(而不是与每个实体自动捆绑).
  5. 物理将更容易处理,而无需了解图形.
  6. Body可以不上的图形直接的影响进行更新.
  7. 您对物理学与外观完全无关的理解将会得到显着改善.