→ aquarianboy:感謝補充 :) 04/22 15:44
記得amfphp回傳的不是物件嗎
會不會是型別的問題錯了啊
a0是陣列 a1是物件
然後你這樣複製陣列怪怪的
如果陣列裡的元素是數值的話是可以用concat
但要是裡面是物件的話就不行了,會變成只是參照而不是複製
推文有人說用序列化
我自己就都是用這種方式
不管是傳值給後端
還是單純複製物件
這是我的程式碼
private function clone(source:Object):* {
var byteArray:ByteArray = new ByteArray();
byteArray.writeObject(source);
byteArray.position = 0;
return (byteArray.readObject());
}
就丟進去什麼複製什麼
如果你要傳到後端
就把寫入後的byteArray用amfphp傳去後端吧
在php裡用file_put_contents([name], [data])
就可以把東西都存起來了
※ 引述《STARGAZERs (星之影)》之銘言:
: 今天在修改 Flash 當中一段 code
: 要從外部抓資料回來 因為一次只能傳回一個 return
: 但是要傳的資料又很多決定用 Array 來收
: 因為使用 AMF PHP 所以傳回來的資料會獨自出現在一個 Function 當中
: 大概會象下面這種格式
: connection.call(xxxx); // 呼叫 AMF PHP 要資料
: function get (A1:Array) { // 接收資料的 function
: }
: 因為收進來的資料 需要給其他 Function 使用
: 只好宣告一個全域變數的陣列(Array)
: var A0:Array = new Array;
: 原本直接打 A0 = A1; 會出問題 不知道為甚麼在我打這篇時又可以了 @@"
: 所以複製陣列可以直接 A0 = A1?
: 我原本都還打算用 for 回圈 + push 來複製陣列了
: 那我之前的 bug 是在鬼打牆甚麼 ><"
: 順便把查找資料的心得附上...
: 清空陣列 array = new Array;
: 不過還有更妙的寫法(更快) array.length = 0; (查到的時候很傻眼)
: 複製陣列的另外一個寫法 var arrayCopy = array.concat();
: 不過我測試一下好像也可以用
: var arrayCopy : new Array;
: arrayCopy = array.concat;
: 不過還是覺得很奇怪阿...
: 明明早上用
: var A1:Array = new Array( , , , ,);
: var A2:Array = new Array;
: A2 = A1;
: 還會出現 bug 不給我用 怎麼突然又可以了...
: 有沒人能告訴我這是怎麼個鬼打牆法阿 ><"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.77.253