matsukaz's blog

Agile, node.js, ruby, AWS, cocos2d-xなどなどいろいろやってます

ActionScriptで可変長引数を別のメソッドに渡す方法

備忘録的に残しときます。
可変長引数をそのまま別のメソッドに渡す場合は、Function.apply()を利用すればOK。

public function hoge(...args):void
{
    hoge.apply(this, args);
}
public function fuga(...args):void
{
}

可変長引数以外の引数も混在している場合は、concatで配列を結合すればOK。

public function hoge(arg1:String, arg2:String, ...args):void
{
    hoge.apply(this, [arg1, arg2].concat(args));
}
public function fuga(arg1:String, arg2:String, ...args):void
{
}

配列を作ればいいだけなので、呼び出し先メソッドのシグニチャに合わせて不要な引数は消しちゃえばいい、と。