Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash As3游戏:课堂提问_Flash_Actionscript 3 - Fatal编程技术网

Flash As3游戏:课堂提问

Flash As3游戏:课堂提问,flash,actionscript-3,Flash,Actionscript 3,我正在用flash develop和flash cs5在as3中制作一个游戏。一切都是面向对象的。我想知道,我是否应该有一个“网关”类,该类具有对其他类的所有实例化的属性引用,并且我只将这个网关类传递给新对象,这样它们就可以访问每个类。像这样: var block:Block = new Block(gateway); //In the block class: this.gateway.player.setHealth(100); //Or: this.gateway.input.

我正在用flash develop和flash cs5在as3中制作一个游戏。一切都是面向对象的。我想知道,我是否应该有一个“网关”类,该类具有对其他类的所有实例化的属性引用,并且我只将这个网关类传递给新对象,这样它们就可以访问每个类。像这样:

 var block:Block = new Block(gateway);

 //In the block class:
 this.gateway.player.setHealth(100);
 //Or:
 this.gateway.input.lock();

这像是一个单身模式还是什么?我应该这样做吗?

我以前用过这个主意。我用它作为模型。数据模型-或dumb存储对象的有效主干-或对对象的引用。这是很有用的,因为你总是可以找到一些东西,而不必走遍你的课堂

我将它作为一个单例使用,因此您不必担心可能会创建新版本的数据模型并引用空白对象。有点能让你几个小时都不挠头。 它看起来像这样:

package com.strangemother.models.DataModel
{
    private static var _dataModel:DataModel;
    /**
    an example of storing you items.
    */
    public var character:Character;

    public static function getInstance():DataModel
    {


     if(!_dataModel)
        {
  _dataModel= new DataModel(SingletonLock); 
  return _dataModel;

     }

 public function DataModel(lock:Class)
 {
  if(!lock is SingletonLock)
  {
   throw new Error("DataModel is a singleton. Use DataModel.getInstance() to use.");
  }
 }
}
添加@AttackingHobo:

this is a one ( 1 ) this is the letter L lowercase ( l )

也许这是一个快速尝试某事的好方法,但从长远来看,网关对象将变得如此巨大,不同对象之间的关系将如此之多,以至于它将承受自身的重量


此外,面向对象的一个要点是将部分代码的访问封装到只需要它的对象。

这个概念被称为。看起来你已经创建了一个。有其他实现控制反转的方法,例如。马丁·福勒(Martin Fowler)对整个概念都有自己的见解,你应该阅读它,然后自己决定。

DataModel有点像DataMode1。我只是想指出这一点。我并没有说它看起来和DataMode1一模一样,只是有点像。:)