Actionscript 3 AS3未定义函数#1006

Actionscript 3 AS3未定义函数#1006,actionscript-3,import,Actionscript 3,Import,我有一个名为“main.as”的父类。我试图让子类调用main的函数。它们都位于同一文件夹中 // main.as // package { public class main extends MovieClip { public function main() { var child:child_mc = new child_mc(this); } public function callFunction():void { trace(

我有一个名为“main.as”的父类。我试图让子类调用main的函数。它们都位于同一文件夹中

// main.as //
package {

  public class main extends MovieClip {

    public function main() {
      var child:child_mc = new child_mc(this);
    }

    public function callFunction():void {
      trace("Done it");
    }

  }
}

这就是我一直遇到的错误:

TypeError: Error #1006: callFunction is not a function.
所以我试着做这样的追踪

trace(main.callFunction);
它说的是未定义的。有人能告诉我我错过了什么吗。我有这种感觉,这是我忽略的一件非常基本的事情

您的“子”包定义为“主”。我甚至不知道它是如何运行的,更不用说运行到显示您收到的错误消息的程度了

我相信下面的代码应该满足您的期望

(我还冒昧地重命名了要使用的类(带有首字母大写),以遵循最佳实践,并更容易区分变量名。)

Main.as

package {

    public class Main extends MovieClip {

        public function Main() {
            var child:ChildMC = new ChildMC();
            child.main = this;
        }

        public function callFunction():void {
            trace("Done it");
        }

    }
}
编辑:我刚才看到你的评论,指出
child\u mc
是库中的电影剪辑。我猜
child
类被设置为
child\u mc
的基类

如果是这样,则无法通过实例化器传递属性,需要找到另一种方法将主类的实例传递给子类

一种方法是添加setter,如下所示:

Child.as(ChildMC的基类)


似乎你不需要
importmain,请尝试删除itI。我仍然收到相同的错误。我认为导入它将有助于识别该功能。因此,是否可以向我们展示更多您的代码?类定义等都做了更改。child_mc是一部图书馆电影剪辑顺便说一句。鉴于看到
child_mc
是一部图书馆电影剪辑,更新了答案。是的,是打字错误。我改变了我所有的类名,因为它又长又复杂,我想让它更容易阅读。谢谢你的帮助!
package {

    public class Main extends MovieClip {

        public function Main() {
            var child:ChildMC = new ChildMC();
            child.main = this;
        }

        public function callFunction():void {
            trace("Done it");
        }

    }
}
package {

    public class Child extends MovieClip {

        private var _main:Main;

        public function Child() {

        }

        public function set main(main:Main):void {
            this._main = main;
            this._main.callFunction();
        }

    }
}