有人可以扩展和澄清动作脚本中对象的不同逻辑实例吗?到目前为止,似乎有 3 层实例化,因为没有更好的术语。
第一个是声明一个变量/类型。
接下来是用代码中的一些实体来实例化该变量,比如方法或函数?这只是一种将事物粘合在一起的方法吗?
然后在舞台上实例化它,这是你必须明确做的事情,还是它的副作用?
这个“3 层”概念是正确的看待它的方式吗,有点像 Flash 应用程序逻辑的 MVC?
有人可以扩展和澄清动作脚本中对象的不同逻辑实例吗?到目前为止,似乎有 3 层实例化,因为没有更好的术语。
第一个是声明一个变量/类型。
接下来是用代码中的一些实体来实例化该变量,比如方法或函数?这只是一种将事物粘合在一起的方法吗?
然后在舞台上实例化它,这是你必须明确做的事情,还是它的副作用?
这个“3 层”概念是正确的看待它的方式吗,有点像 Flash 应用程序逻辑的 MVC?
您可以实例化对象而不将它们分配给变量...而不是将对对象的引用存储在变量中,您可以直接将其作为参数传递给函数,或者您可以将其他对象作为参数传递给构造函数,这将允许对象在其他地方自行注册......例如,此代码将完美运行:
(new URLLoader(new URLRequest("someURL"))).addEventListener(Event.COMPLETE, someEventHandler);
这段代码实例化了 2 个对象,没有一个对象被存储到一个变量中......
所以实例化根本与变量无关,也就是说,为什么“第一步”不是实例化过程的一部分……对象的实例化是new SomeClass(someParam_1,...someParam_n)
……
正如Epskampie指出的那样,“第三步”也不是实例化的一部分,因为它只适用于DisplayObject
s ...它不是“在舞台上实例化”,而是“将它们放在显示列表中”...... . 而且,大多数时候,您将它们放入舞台的(孙)子级,而不是舞台本身......您也可以简单地决定不将 aDisplayObject
放在显示列表中(有几种情况,这使得感觉) ...
所以是的,我不会谈论“层”......你描述的是DisplayObject
在显示列表上创建一个可能的方法,它由3个“步骤”(第一个是可选的)组成,但不是“层”...... . 并且与 MVC 没有类比 ... flashDisplayObject
是创建视图的基础 ... ActionScript 中的 MVC 与任何其他语言中的工作方式几乎相同 ... 您可以像在任何语言中一样创建模型、控制器和视图对象其他语言...实例化对所有人都是一样的,但是对于后者,它需要一个额外的步骤来显示它们...
希望有帮助...
问候
back2dos
我认为您混淆了“常规”对象和扩展 DisplayObject 并可以添加到舞台的对象。
你假设你必须声明和实例化每个对象是正确的。
如果它正在扩展 DisplayObject,您可以例如使用以下命令将其添加到舞台:
stage.addChild(new ObjectName());
要在 MVC 环境中应用它:您应该只在代码的 View 部分中使用 DisplayObjects。