我有点麻烦。我的情况 - >我想将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:
在游戏中显示(字母);
我案子的任何解决方案? 三江源
答案 0 :(得分:0)
inGame.apply(null, letters);
请参阅http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Function.html#apply%28%29
答案 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
}
除非你有一些质量不明的理由不这样做,否则你只会让事情变得简单。