快速业务通道

Flash AS3教程:疑难杂症汇总

作者 凌众技术 来源 网页制作 浏览 发布时间 2012-03-10

前面学习了Flash AS3教程:ImageLoader类,但是有时我们在做项目时可能会遇到这样或那样的问题,这篇里给大家专门提供些解决办法。

在做项目的时候,总会碰到很多,奇奇怪怪的问题,看了这篇文章相信会有些帮助,虽然不是很全面,但只要是我碰到过的问题,就分享给大家!但是也怕有些想不起了。。尽力额、、

==================== 气 死 你 的 分 割 线 ====================

1、数组的排序问题:Array.sort()方法
大家都经常用排序,一般都是字符串排序什么的,都不会发现什么的,现在来看一个有趣的现象

CODE:

var a:Array = [7,3,32,64,96,13,42];
a.sort();
trace(a);
//输出:13,3,32,42,64,7,96
奇怪了,为什么排序出来的东西是个这样的。。
分析为什么:仔细看一下,会发现每个数字的第一个数字,的确是按排序放好的:1,3,3,4,6,7,9
为什么会这样呢?仔细来看看Array的官方文档

QUOTE:

默认情况下,Array。sort() 按以下方式进行排序:
1、排序区分大小写(Z 优先于 a)。
2、按升序排序(a 优先于 b)。
3、修改该数组以反映排序顺序;在排序后的数组中不按任何特定顺序连续放置具有相同排序字段的多个元素。
4、元素无论属于何种数据类型,都作为字符串进行排序,所以 100 在 99 之前,这是因为 "1" 的字符串值小于 "9" 的字符串值。

不难发现,第4条说明了,默认是以字符串进行排序,而不是以字符串排序,难怪会出现这样的结果额
那么应该如何排序才会出现我们要的答案呢?

CODE:

var a:Array = [7,3,32,64,96,13,42];
a.sort(Array.NUMERIC);
trace(a);
//输出:3,7,13,32,42,64,96
加的这个参数是什么东西额。。仔细看看帮助文档吧。。
然后Array提供了几个常量分别是:

QUOTE:

CASEINSENSITIVE : uint = 1             [static] 指定 Array 类排序方法为不区分大小写的排序。
DESCENDING : uint = 2                    [static] 指定 Array 类排序方法为降序排序。
NUMERIC : uint = 16                        [static] 指定 Array 类排序方法为数值(而不是字符串)排序。
RETURNINDEXEDARRAY : uint = 8     [static] 指定排序返回的数组包含数组索引。
UNIQUESORT : uint = 4    

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号