0

我正在编写一个遗传适应性程序,我目前正在编写一些代码来计算每个生物体的“适应性”值。

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

function random_genotype_initialisation():void 
{
    //stuff
}

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

random_genotyoe_initialisation();

但是,这会返回错误:“TypeError: Error #1010: A term is undefined and has no properties。”

我在其他地方寻求帮助,并找到了一些建议,例如声明一个变量并“调用”它。

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

有什么建议么?

4

2 回答 2

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# 或任何其他“标准编码语言”中一样。但是,如果没有更好的问题,就不可能说出你做错了什么

于 2012-12-08T17:18:11.603 回答
0

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

该片段有点错误,因为您存储了replcate_new_generationinto的结果rep,但这是一个 void 函数,因此rep将是 void 并且因此没有 call():

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(); 如果在函数内产生错误,也许您也应该发布函数的主体?

于 2012-11-29T10:55:56.297 回答