as3数组到参数类/指针函数

时间:2013-11-16 15:31:27

标签: arrays actionscript-3 parameters function-pointers

我有点麻烦。我的情况 - >我想将Array设置为caling function / class的参数。

var letters:Array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"];
letters.sort(randomSort);

并调用函数

inGame(no1,no2,no3,no4,no5,no6,no7,no8,no9,no10);

我的功能

public function inGame(_soal1: String,_soal2: String,_soal3: String,_soal4: String,_soal5: String,_soal6: String,_soal7: String,_soal8: String,_soal9: String,_soal10: String,) 
{
   ......
}

问题 - >我不能设置数组成为游戏中函数的参数。当我尝试这样时,它得到错误1136:

在游戏中显示(字母);

我案子的任何解决方案? 三江源

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

除了弗兰克的建议之外,我个人会创建另一个函数并用适当的参数调用它:

public function inGame(...args):void {
    this._inGame.apply(this,(args.length && args[0] is Array) ? args[0] : args);
    /*
    // shorthand for:
    if (args.length && args[0] is Array) {
        this._inGame.apply(this, args[0]);
    } else {
        this._inGame.apply(this, args);
    }
    */
}

private function _inGame(
           _soal1:String, _soal2:String,
           _soal3:String, _soal4:String,
           _soal5:String, _soal6:String,
           _soal7:String, _soal8:String,
           _soal9:String, _soal10:String):void {
    // here's your code
}

答案 2 :(得分:0)

你应该只重写你的inGame()函数:

public function inGame(letters:Array):void
{
    // do something with letters
}

除非你有一些质量不明的理由不这样做,否则你只会让事情变得简单。