Actionscript 3 ActionScript3.0:为什么将用于移动对象的代码从对象本身分离出来是一个好主意(例如,球和球思维)

Actionscript 3 ActionScript3.0:为什么将用于移动对象的代码从对象本身分离出来是一个好主意(例如,球和球思维),actionscript-3,flash,oop,object,actionscript,Actionscript 3,Flash,Oop,Object,Actionscript,我的问题几乎就在标题中,为什么我一直在读ActionScript3.0,在编写代码时把“思想”和“对象”分开是个好主意 谢谢你的帮助,这让我非常困惑。如果你问为什么图形与定位、运动和物理分离;以我画的这棵树为例: 在树中,您将看到实体有两个属性: 图形-实体的外观 实体-实体应位于的位置 向下移动,您将看到有几个东西扩展了实体——最值得注意的是玩家和敌人职业 扩展上面的实体类,我可以很容易地更改应该用作图形的内容,还可以提供稍微不同的主体。例如,玩家和敌人的外观明显不同,而树类不需要使用主体来

我的问题几乎就在标题中,为什么我一直在读ActionScript3.0,在编写代码时把“思想”和“对象”分开是个好主意


谢谢你的帮助,这让我非常困惑。

如果你问为什么图形与定位、运动和物理分离;以我画的这棵树为例:

在树中,您将看到
实体
有两个属性:

  • 图形-实体的外观
  • 实体-实体应位于的位置
  • 向下移动,您将看到有几个东西扩展了
    实体
    ——最值得注意的是
    玩家
    敌人
    职业

    扩展上面的
    实体
    类,我可以很容易地更改应该用作
    图形的内容
    ,还可以提供稍微不同的
    主体
    。例如,玩家和敌人的外观明显不同,而
    类不需要使用
    主体
    来处理速度等值,因为它不会移动

    以下是上述方法的一些优点:

  • 我们可以创建没有图形的实体,从而节省性能和内存
  • 如果您使用
    实体
    类扩展了
    MovieClip
    ,我们可以使用不同类型的图形,而不必坚持使用
    MovieClip
  • 我们可以在
    Graphics
    类中添加额外的逻辑,例如能够轻松地将精灵或MovieClip转换为精灵表以获得更好的性能
  • 图形将更易于管理且更轻量级(与自动与每个实体捆绑相比)
  • 物理将更容易处理,而不需要了解图形
  • 正文
    可以在不立即影响图形的情况下进行更新
  • 你对物理学与外表完全无关的理解将显著提高

  • 你的意思是将“身体”(一个物体的数学表示,它也控制运动、碰撞等)从实际图形中分离出来吗?因为一般来说,球的大脑不需要知道球的一切,只需要知道它工作所必需的部分。如果每件事都与每件事交织在一起,那么在不改变其他一切的情况下进行孤立的改变几乎是不可能的。因此,将球分割成独立的抽象被认为是良好的实践。这是一种封装形式,即信息隐藏。这是强大的,因为它允许您,例如,将球的图形交换为更大的球,或添加20个具有相同行为的球,等等。高内聚、低耦合。