AS3:从一个类到另一个类的调用函数

时间:2012-06-18 13:22:49

标签: actionscript-3 class

所以我有两个班级的 A班班级B

我有一个功能,我希望在 A类上使用,但我的flash fla文件链接到 B类

所以我做了以下事情:

A类 - 功能

    public function Fb_Checks()
    {
        // constructor code
        load_top_bar();
    }

B类 - 导入

import ClassA;

然后如果我尝试从B类调用A类中的函数:

Fb_Checks();

我收到以下错误:

  

调用可能未定义的方法Fb_Checks。

还有什么我应该做的才能让它发挥作用吗?

2 个答案:

答案 0 :(得分:2)

您需要获得有关OOP的更多信息。它是如何工作的,然后理解概念会更容易。

现在简单解释一下:我们有 ClassA ClassB ClassC

ClassA
{
    var value:ClassB;

    public function ClassA ()
    {
        // each variable needs to initialize unless it is the ClassC, see below
        // Only after that you will be able to reach the public properties
        // of the class.
        value = new ClassB();
        value.calculate();
    }
}

ClassB
{
    var value:Number;

    public function ClassB ()
    {

    }

    public function calculate():void
    {
        // these must be statis
        ClassC.sum(150, 450);
    }
}

ClassC
{
    // if the function is static, then you can call it without initializing
    // the class
    static public function sum(value1:Number, value2:Number):Number
    {
        return value1 + value2;
    }
}

答案 1 :(得分:1)

在调用其公共函数之前,您必须创建一个ClassA实例。

package  
{
    import ClassA;

    public class ClassB
    {

        public function ClassB()
        {
            var instanceOfA:ClassA = new ClassA();

            instanceOfA.Fb_Checks();
        }
    }
}

如果你想让它像你的例子那样工作,你应该用ClassA扩展你的ClassB。在这种情况下,它的公共和受保护的功能也可以在ClassB中使用。

package  
{
    import ClassA;

    public class ClassB extends ClassA 
    {

        public function ClassB()
        {
            Fb_Checks();
        }
    }
}