前面学习了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 |