在Actionscript中调用函数:“术语未定义且没有属性”

时间:2012-11-29 10:28:16

标签: actionscript-3 flash actionscript flash-cs5

我正在写一个基因健身计划,我正在编写一些代码来计算每个生物体的“适应度”值。

我正在尝试调用初始化每个基因型的函数;

function random_genotype_initialisation():void 
{
    //stuff
}

通过使用我在C#和Java中习惯的典型方法调用;

random_genotyoe_initialisation();

然而,这会返回错误:“TypeError:错误#1010:术语未定义且没有属性。”

我在其他地方寻求帮助,我找到了一些建议,例如声明变量和'调用'。

var rep = replicate_new_generation();
rep.call();

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我假设你的random_genotype_initialisation()函数中有一个未定义的值。你是对的,你在as3中调用一个与java / c / c ++ / c#/ js / etc相同的函数。

该代码段有点不对,因为您将replcate_new_generation的结果存储到rep,但这是一个void函数,因此rep将无效,因此没有调用( ):

var rep = replicate_new_generation();//rep = void at this point
rep.call();//call does not exist for rep

你的意思是?

var rep:Function = replicate_new_generation;
rep.call();

replicate_new_generation();相同 如果在函数内产生错误,也许你应该发布正文 功能呢?

答案 1 :(得分:0)

C#非常类似于AS3,我不知道你要做什么或为什么你的代码不起作用,因为你没有提供一个很好的例子。但只要能够以任何正常方式访问它们,您就可以直接调用函数。

说,在课堂上你有:

class Boo {
    private function foo():void {
         trace("bar");
    }

    public function foobar():void {
        foo();
    }
}

class FoobarCaller {
    public function FoobarCaller (){
        var asdf:Boo = new Boo();
        asdf.foobar();
    }
}

有效,就像在C#或任何其他“标准编码语言中一样。但是,如果没有更好的问题,就不可能说出你做错了什么