2009-10-08 3 views
8

には、フラッシュ内のARRAYをトレースする方法があります。 EX用print_r(myArray)フラッシュトレース、ダンプ、プリント配列変数

:(フラッシュ中):

私はPHPSコマンドと同様の出力を持ちたい

var event:Array = new Array(); 
event['name']='david'; 
trace(event); // that display anything 

PHPでますprint_rは(イベント)の文字列として表示されるでしょうが:

Array { 
['name'] => david, 
} 

私はフラッシュで同じ種類の結果を達成したいです。

答えて

10

trace(array.join());は、数値索引配列に対して機能します。連想配列の場合は、for..in構造体を使用する必要があります。

for(var t:Object in array) 
    trace(t + " : " + array[t]); 
+0

for(var t:Object in ループに許される唯一の型は文字列型です。 、エラーメッセージが表示されます。 –

+0

(var t in array) – Amarghosh

+0

for(var t:Object in array)は、Flex Builder 3で動作します。取得したエラーメッセージを投稿できますか? – Amarghosh

1
function obj_size (o:Object){ 
    var n=0; 
    for (var x in o) 
     n++; 
    return n; 
} 

作業を行う;)

SO I)が(Array.sizeofにはsizeof()evivalendを解決しました。

どのようにオブジェクトのarray.push()について?

2

アクションスクリプトトレース(任意のアクションスクリプト言語バージョンの)関数はかなり大きな恥です。

ちょうどその笑いしよう:

var a :Array = [1,2,3]; 
var b :Array = [4,5,6, a]; 
a[3] = b; 

trace(a); 

非恥ずかしいトレース機能が実際に配列の要素をループとは機能はありませんAS3 トレースとして配列内の配列をトレースする必要があります。しかし、トレースされているルート配列内の内部配列と親配列の間の循環参照もチェックする必要があります。これは再帰的または反復的な方法で実装できます。

AS3 トレースの機能が不良であることに同意しない場合、この機能によってアレイが別のアレイに含まれているかどうかを確認することはできません。あなたが内部nullまたは未定義の値を持っている場合

[1,2,3],4,5,6 

そして最後に:

var a :Array = [1,2,3]; 
var b :Array = [a, 4,5,6]; 

trace(b); 

が出力されます。この:

1,2,3,4,5,6 

我々はこのような出力を期待できるが、私はこのコードことを意味しますあなたの配列は空の文字列としてトレースされます:

意志出力この:

4,5,6,,1,2,,3 

... !!! ...

2

これを試してみてください。

import mx.utils.ObjectUtil; 
trace(ObjectUtil.toString(event)); 
+0

Flash CCとAS3を使用して私がうまく動作しませんでした。 – mhulse

関連する問題