ActionScript 3:将命名函数分配给Function类型的变量

时间:2013-08-16 18:59:05

标签: actionscript-3

我正在使用游戏循环,并尝试通过根据游戏状态为Function类型的变量分配各种方法来处理用户输入。

我将一个名为InputState1的已定义函数分配给我的Function变量inputFunction:

var inputFunction:Function = InputState1;

其中InputState1为:

public function InputState1():void
{
    // input logic
}

并在游戏循环的更新方法中调用inputFunction:

override protected function update(timeDelta:Number):void
{
    trace(inputFunction);
    inputFunction();
}

当我跟踪inputFunction时,它返回一个空函数。

是否可以将命名函数分配给函数变量?如果可以,我将如何正确地执行此操作?

解决方案:我正在调用我的函数变量调用方法,而不是只调用函数。它现在有效。

2 个答案:

答案 0 :(得分:0)

我从你的论证中理解的是你想要一个游戏状态被识别并根据它行动,你总是可以定义一个持有游戏状态值的字符串,该值随游戏状态的变化而更新,并使函数返回该字符串,(或直接comapre该字符串与定义的状态)

var gameState:String="initial";

override protected function update(timeDelta:Number,gameState:String):void
{
  gameState="newstate"; //depending upon your condition requirement
}

if(gameState="requredState"){
    //do required stuff
}

答案 1 :(得分:0)

问题是我正在调用我的函数变量的调用方法,而不是只调用函数。它现在有效,我已经将我的问题中的代码编辑为正确的版本。