【发布时间】:2014-05-26 13:45:44
【问题描述】:
我在AS3中做两个类的时候发现了一个很奇怪的问题。我们称他们为ParentClass 和ChildClass。为了使他们两个都需要一个Sprite 对象,然后ParentClass 使它在舞台上可见。 ChildClass 也继承了 ParentClass。
ParentClass.as:
package myStudio.basic {
import flash.display.MovieClip;
import flash.display.Sprite;
public dynamic class ParentClass extends MovieClip {
public function ParentClass(mc:Sprite=null) {
addChild(mc);
}
}
}
ChildClass.as:
package myStudio.containers {
import myStudio.basic.ParentClass;
import flash.display.MovieClip;
import flash.display.Sprite;
public class ChildClass extends ParentClass {
public function ChildClass(mc:Sprite=null) {
addChild(mc);
}
}
}
然后,我在 FLA 文件的第 1 帧,Layer Actions 上编写此代码:
var mc:MovieClip = new childMC;
var vig:ChildClass = new ChildClass(mc);
addChild(vig);
但是,我遇到了运行时错误 #2007:
TypeError: Error #2007: The value of the parameter child must not be null.
at flash.display::DisplayObjectContainer/addChild()
at myStudio.basic::ParentClass()
at myStudio.containers::ChildClass()
at myStudioComicAnimator_fla::MainTimeline/frame1()
我尝试覆盖ChildClass 构造函数,但它仍然不起作用。
所以这是我的问题:还有其他解决方法可以解决这个问题吗?
【问题讨论】:
标签: actionscript-3 flash class overriding flash-cs6