作者langrisser19 (lenny)
看板Flash
标题Re: [问题] AS3 阵列(Array) 我搞不懂你阿 @@"
时间Thu Apr 22 15:28:34 2010
记得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
1F:→ aquarianboy:感谢补充 :) 04/22 15:44