2011-07-19 4 views
0

私はユニークな(私にとって)、非常に混乱した状況に遭遇しました。アレイはas3のセカンダリのテンポラリ配列に変更されました。

私は3つの値の配列を持っています。

焦点[X、Y、Z]

これらの値は、ユーザ入力に基づいて変化します。場合フォーカル[1] +、しかし

var temp:Array = focal; //I have even changed this to a const at times but to no avail 

//changes to array are made like thus: 
focal[1]++; 
focal[0]--; 

if(valid){ 
doStuff(); 
} else { 
focal = temp; 
} 

:変更が発生した場合しかし、それらは有効をテストするために新しいアレイにログインしている

私のコードの簡略化した擬似バージョンを変更しました+;焦点[0] - ;コードが実行されます。また、一時配列も変更されました。

これは私の温度を変えるので、元のコードを以前の性質に戻すことはありません。

私はこの動作を見たことがないし、ちょっと私を捨ててしまった。提案?

答えて

3

あなたはこのようにやっている:

var temp:Array = focal; // Both array variables refer to the same array. 

をあなたが一方から他方へすべてcomponetnsをコピーする必要がバックアップまたは一時的な配列にしたい場合:

var baseArray : Array = [0, 0, 0]; 
var tempArray : Array = baseArray.slice(); 

baseArray[0]++; 
baseArray[1] += 2; 
baseArray[2] += 3; 

trace (baseArray); // output: 1,2,3 
trace (tempArray); // output: 0,0,0 
+0

私は、基本的に別のポインタを作っていました。奇妙な。ありがとうございました! – SimpleRookie

関連する問題