看板 Flash 關於我們 聯絡資訊
記得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
aquarianboy:感謝補充 :) 04/22 15:44