Actionscript 3 actionscript 3.0 OPP类型和类别
他们之间有什么不同 var myObject:Sprite=新Sprite(); 和Actionscript 3 actionscript 3.0 OPP类型和类别,actionscript-3,Actionscript 3,他们之间有什么不同 var myObject:Sprite=新Sprite(); 和 var myObject:Sprite=newmovieclip() 其中一个不对,还有一个是:) 很好,您可以说它是Sprite类型(myObject:)之后的位,然后在“=”:new Sprite()之后调用Sprite构造函数 在另一个例子中,您仍然说它是类型Sprite(myObject:Sprite),然后在您说new MovieClip()时调用MovieClip的构造函数 如果要创建电影剪辑,请执
var myObject:Sprite=newmovieclip() 其中一个不对,还有一个是:) 很好,您可以说它是Sprite类型(myObject:)之后的位,然后在“=”:new Sprite()之后调用Sprite构造函数 在另一个例子中,您仍然说它是类型Sprite(myObject:Sprite),然后在您说new MovieClip()时调用MovieClip的构造函数 如果要创建电影剪辑,请执行以下操作:
var newMC:MovieClip = new MovieClip();
区别在于
var myObject : Sprite = new Sprite();
声明类型为Sprite
的新变量,并为其分配新的Sprite
对象,同时
var myObject : Sprite = new MovieClip();
声明类型为Sprite
的新变量,并为其分配新的MovieClip
对象
MovieClip
继承自Sprite
,因此将MovieClip投射到Sprite没有问题。
MovieClip和Sprite之间有一些区别。主要区别在于MovieClip有一个时间轴,而Sprite没有。MovieClip和Sprite是独立的类,尽管它们彼此相关,因为MovieClip扩展了Sprite。因此,MovieClip具有与Sprite相同的功能,并且它还添加了更多功能,主要与时间轴动画有关(play()、stop()、gotoAndPlay()、addFrameScript()等) 由于MovieClip具有与Sprite相同的所有功能,因此可以将MovieClip对象分配给类型为Sprite的变量
var myObject : Sprite = new MovieClip();
然而,Sprite并没有共享MovieClip的所有功能,因此这并不适用于其他方面:
// Will not work
var myObject : MovieClip = new Sprite();
如果您想知道特定类的继承链,请查看文档,例如:。您可以看到它扩展了Sprite,而Sprite又扩展了InteractiveObject,依此类推
在语言不可知论中,这被称为继承,其优点之一是。两者都是“正确的”,但一个依赖继承的概念,而另一个则不是。谢谢大家的帮助。我正在使用构图模式。除了一个是movieClip之外,所有的组件都是sprite。更新所有组件时,您将如何处理movieClip的例外情况?@quan,我建议您将其作为单独的问题发布,并更深入地描述您想要实现的目标。
// Will not work
var myObject : MovieClip = new Sprite();