2012-01-01 65 views
5

我在我的库中有两个MovieClip符号,我希望它们共享相同的类,但Flash不允许将同一类分配给任何两个不同的MC符号,所以相反,我创建了两个虚构的类,它们扩展了我最初想分享的类。AS3两个共享相同类的影片剪辑

因此,通过扩展不同类的两个不同类定义的两个MC符号允许我共享同一段代码。

我的问题:还有更好的方法是在2个或更多不同的图书馆符号之间分享一个类吗?

+1

您没有创建虚假类。请参阅我对@ Cameron答案的评论。无论您是否定义一个类,每一个库项目都是一个独特的类,如果您不指定类标识符,则Flash会自动创建一个。 – 2012-01-01 05:18:40

+0

@BoltClock您错误地删除了Flash CS5/CS4/CS3标签。这与IDE特别相关。 – 2012-01-01 05:26:10

+0

是的,你是对的。我应该更好地选择我的话。当我说虚假时,我实际上在考虑代理人。此外,感谢有关Flash自动为每个库项目创建类的信息,我认为Flash仅为包含代码的符号自动创建类,并且它会将这些类放置在自动创建的包中,该包将导出的swf的名称文件前缀_fla(例如ExportedSwfName_fla)。 – IneedHelp 2012-01-01 05:57:49

回答

4

无论你在做什么,你都不理解“使用”与影片剪辑对象关联的类的概念。您不可能为这两个对象分配相同的类名,即使您是这样,请相信我IDE实际上创建了两个扩展原始类的不同对象。您可以直接将一个库项目分配给一个类,或者可以定义一个新的类名称,该类名称将作为基类引用的.as文件/类扩展。后者是旨在简单地将具有基本功能的基类应用于多个对象的解决方案。

这样做的一个例子是定义一个基本类,它捕获翻转和滚出事件,并使滚动条在滚入/滚出时增大和缩小。然后,您可以在动画片段中制作10种不同类型的按钮,并将您制作的类作为基类分配给库对象本身。

+1

比你澄清和例子。 – IneedHelp 2012-01-01 05:59:53

+0

使用基类对于获得这种行为非常普遍。 – 2012-01-01 06:14:33

+0

+1,这比我的回答(现在删除)要好得多。我忘了命名库对象... – Cameron 2012-01-01 16:37:42