長さ0を返しませんか?関数bbのように、渡されたaArgを非空/非nullとして扱います。AS3 ...(rest)パラメータ
私はここで何が欠けていますか?
何か助けていただければ幸いです。 について..
長さ0を返しませんか?関数bbのように、渡されたaArgを非空/非nullとして扱います。AS3 ...(rest)パラメータ
私はここで何が欠けていますか?
何か助けていただければ幸いです。 について..
bb()関数に行くaArgsは空の配列になりますが、配列はそれほど少なくありません...出力が期待されると思います。私は少しを明確にしたかった
:アップデート1
...所望の出力を得るためにかかわらず、私は違っそれをフォーマットする方法をけれども私は本当にわかりません。あなたが持っているものは、基本的には次のようなものです:function aa(...aArgs):void
{
myArray:Array = aArgs;
bb(myArray);
}
function bb(...bArgs):void
{
trace("bb:", bArgs.length);
}
aa(); //calling aa without any arguments.
このコードを見れば、あなたはbb:1でしょうか?
アップデート2:
このスレッド:filling in (...rest) parameters with an array?それは、関連するだろうかのように見えます。 apply()関数を使用して配列をパラメータリストとして渡します。 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Function.html#apply()
これは理にかなっており、正しく動作します。 ... restは常に配列を作成し、渡された値がない場合は空の配列を作成します。長さをトレースするとわかります。だから、bbが... rest配列に1つのオブジェクトを持つ理由は、空の配列をbbに値として渡していることです。これはbbの... restによって生成される配列の最初の位置に挿入されます。 1の長さ。
はい私は上記のすべてに同意します。しかしそれは単に問題の性質を記述しているだけで、私たちに適切な解決法を提供していない。私は関数のオーバーフローとそのパラメータをそのまま維持する必要があります(このコードは複雑なクラスの単純なバージョンなので)。とにかく、私はあなたの助けを借りてソリューションを考え出しました。あなたはそれをここで見つけることができます:http://stackoverflow.com/questions/972460/as3-argumentsそれは難しい/異なるアプローチと思われないかもしれませんが、それは私が必要とするものです。 –
は、これはまだ関連性があるかどうかを知りませんが、あなたはこれを試みることができる:
function aa(...aArgs):void {
var myArray:Array = aArgs;
bb.apply(this, myArray);
}
function bb(...bArgs):void {
trace("bb:", bArgs.length);
}
aa(); //calling aa without any arguments.
は基本的にFunction.applyがここにあなたの友達です。
ありがとうございました。ここで解決された質問:http://stackoverflow.com/questions/972460/as3-arguments/972518#972518 –
です。ありがとう。 この例では、aa関数のbb.apply(null、args)を呼び出すことは確実です。 (私は15人の担当者がいればあなたの答えを投票するだろう) しかし、実際には、私は変数にargを渡そうとしています。 など: function aa(... args){someVariable = args; } と私は後でその変数をbb(... args)のように使う:bb(someVariable); - それは動作しません.. –
それはまだ適用と動作するはずです。 somveVariableは配列なので、配列内の個々の項目を渡すためにapply()が必要になることを覚えておいてください。 –
いいえそれは.. スレッドを参照してくださいhttp://stackoverflow.com/questions/972460/as3-arguments 私はここにコードを追加することはできませんので、私は新しい質問をする必要がありました.. –