Flex Object for in 循环

阅读更多

最近在做一个Flex 3D项目,需要写一个组合体,比如用一个立方体和一个球相交,然后再减去一个圆柱体,组合出来一个新的东西,组合体在实际项目中应用很广泛,而且用途很大,对于很多项目,单一的原型比如立方体等是完全不能满足要求的。   当然本文不是想说组合体的问题,而是想说一个很基础的Flex知识点。 组合体不仅需要把数学结构组合在一块,对于原来的属性,比如颜色,贴图都需要顺带带过去,比如一个立方体是红色,组合一个白色的球体,那么组合后的组合体的立方体部分还应该是红色,球体部分还应该是白色。 实际项目中就发现,最后的属性对应不上,总是乱得,调试了好久,以为是算法的问题,最后才发现只是一个简单的问题导致的; bug 的原因是对于属性部分的遍历用Object 的 for in,但是由于Object 的for in 是无序的,就导致添加的顺序和后来取出的顺序不一致,所有就有了乱得情况,实际的效果也是张冠李戴,球的属性给了立方体,立方体的给了球。

照说这个基础的问题是不应该犯的,不过由于这个组合体算法比较复杂,所以一开始就把重心放在算法上,对于属性部分的迭代,没有太多留意,最终导致了bug 的出现。

所以很多时候,我们把自认为高深的部分攻克了,却在小阴沟里面翻船,对于一些基础的小问题,也是要额外注意的。这就好比踢球,一个人带球,过关斩将,突破重重包围,然后单刀,最后还绕过守门员,结果他妈的一脚没踢进,很不爽是吧,所以得多注意。

你可能感兴趣的:(flex,object,for,in)