1

我已经实现了一个扩展 MovieClip 的新类。它的名字是base.MovieClipWithDelays(“base”这里是一个包名)。

我的场景包含一个名为Blah. 在Symbol Properties我检查Export for ActionScriptExport in first frame复选框。我将类名设置为T_Idle_0. 我将它的基类指定为base.MovieClipWithDelays.

问题是以下代码导致类型错误:

var dob:DisplayObject = getChild("Blah");
trace("SuperClass = " + getQualifiedSuperclassName(dob));
return MovieClipWithDelays(dob);

它输出:

SuperClass = base::MovieClipWithDelays
TypeError: Error #1034: Type Coercion failed: cannot convert T_Idle_0@1ec59e9 to base.MovieClipWithDelays.

如您所见,它的超类名称是可以的。然而,它并没有失望。这怎么可能,我该如何解决?

4

1 回答 1

-1

您不能将库 MovieClip 的基类设置为自定义类。您可以将其设置为 Sprite 或 MovieClip。做你想做的事,你有两个解决方案:

1. 管理 MovieClipWithDelays 类中的所有内容(绘图等)。即不要让它依赖于库对象。

或者:

2. 让您的 MovieClipWithDelays 包装一个 MovieClip 实例。

var libraryMC:MovieClip = new SomeLibraryMovieClip();
var customMc:MovieClipWithDelays = new MovieClipWithDelays(libraryMC);

然后在 中MovieClipWithDelays,您将需要一些函数和属性来处理包装的 MovieClip。

于 2011-11-01T10:57:43.210 回答