5.15.创建关联数组

评论(0)浏览(98)分类:flash/flex/fcs/AIR
5.15.创建关联数组问题我要创建用名称元素作为索引的数组解决办法创建关联数组讨论用关联数组其每个元素都有特定的含义,这一点原来的数组类型是做不到的。+展开-ActionScriptvaraMembers:Array=newArray("Franklin","Gina","Sindhu");关联数组在其他的语言叫做哈希表,在ActionScript 里它就是Object 类的一个实例,关联数组使用名称元素来代替数字下标,该名称也..

5.14.比较数组

评论(0)浏览(61)分类:flash/flex/fcs/AIR
5.14.比较数组问题我该怎么知道两个数组是否相等呢解决办法循环数组,一一比较对应位置的每个元素讨论因为数组是引用类型,使用=操作符只能对比引用是否指向同一内存空间,如:+展开-ActionScriptvarletters:Array=["a","b","c","d"];varlettersPointer:Array=letters;trace(letters==lettersPointer);//显示:true但是如果数组内容相同,但是在不同的内存空间..

5.13.取得数组元素的最大值和最小值

评论(0)浏览(83)分类:flash/flex/fcs/AIR
5.13.取得数组元素的最大值和最小值问题我要获取数字数组的最大和最小元素解决办法经过数字排序,然后读取数组的第一个和最后一个元素讨论要想快速的取得最大值和最小值,先进行排序,看下面:+展开-ActionScriptvarscores:Array=[10,4,15,8];scores.sort(Array.NUMERIC);trace("Minimum:"+scores[0]);trace("Maximum:"+scores[scores.length-1]);如果不破坏原有数组顺序,可先复制..

5.12.数组元素的随机排序

评论(0)浏览(113)分类:flash/flex/fcs/AIR
5.12.数组元素的随机排序问题我要打乱数组元素的顺序解决办法使用sort( ) 方法和自定义比较函数返回随机的正数或负数讨论很多情况我们需要得到一个随机排列的数组,比如有个游戏需要产生随机的字母。有很多种方法达到这个目的,但是最简单的办法就是创建自定义比较函数,返回随机的正数或负数,把该函数引用传递给sort( ) 方法:下面的比较函数就能达到目的:+展开-Acti..

5.11.实现自定义排序

评论(0)浏览(78)分类:flash/flex/fcs/AIR
5.11.实现自定义排序问题我要自定义数组排序解决办法把自定义比较的函数引用传递给sort( ) 方法讨论如果要自定义排序,可用sort( ) 方法和自定义比较函数。sort( ) 方法重复调用比较函数对两个数组元素进行比较,比较函数接受两个参数即数组元素(我们称为a和b),根据具体的排序方式返回正数,负数或0。如果返回负数,a排在b前,如果返回0,位置不变,如果返回正数..

5.10.数组排序

评论(1)浏览(105)分类:flash/flex/fcs/AIR
5.10.数组排序问题我要进行数组排序解决办法使用sort( ) 方法,对于对象数组可以用sortOn( ) 方法讨论使用sort( ) 方法就可以对数组进行排序,没有参数是进行升序排序,对于字符内容采用Unicode 编码排序+展开-ActionScriptvarwords:Array=["tricycle","relative","aardvark","jargon"];words.sort();trace(words);//显示:aardvark,jargon,relative,tricycle如..

5.9.存储多维数据

评论(0)浏览(58)分类:flash/flex/fcs/AIR
5.9.存储多维数据问题我要怎样存储多组相关的数据解决办法使用多维数组存储讨论除了一维数组,还可以创建多维数组,比如beginGradientFill() 方法(在第7章讨论)使用三个平行数组表示colors, alphas, 和ratios ,每个数组都有相同的下标。创建平行数组,然后操作同一下标的元素,使用平行数组,很容易访问同一下标的相关元素,比如:+展开-ActionScriptvarcolor..

5.8.创建数组的拷贝

评论(0)浏览(89)分类:flash/flex/fcs/AIR
5.8.创建数组的拷贝问题我要复制一份数组,内容完全一样,只是不同的引用解决办法使用concat( ) 方法或slice( ) 方法,另外还可以使用ArrayUtilities.duplicate( ) 方法,duplicate( )方法可以创建递归复制讨论因为数组是复合类型,因此它的比较和复制都和基本类型不同。一个变量指向数组但是实际上它并不包含数组数据,它只是指向内存中存放数组数据的位置。从优化..

5.7.转换数组为字符串

评论(0)浏览(71)分类:flash/flex/fcs/AIR
5.7.转换数组为字符串问题我要把数组转换为字符串解决办法使用join( ) 方法讨论ActionScript 提供内建的方法join( ) 可以快速把数组转换为字符串(数组中的元素不管什么类型都将转换为字符串),该方法接受个参数作为分隔符:+展开-ActionScriptvarletters:Array=["a","b","c"];trace(letters.join("|"));//显示:a|b|c如果不指定分隔符,默认为逗号:+展开-ActionScr..

5.6.转换字符串为数组

评论(0)浏览(75)分类:flash/flex/fcs/AIR
5.6.转换字符串为数组问题我有一堆字符串,想把它转换为数组。解决办法使用String.split( ) 方法讨论String 类的split( ) 方法把字符串转换为数组,但前提是字符串中含有统一的分割符,比如Susan,Robert,Paula 字符串分割符为逗号split( ) 方法接受两个参数:分割符用分割符来分割字符串,如果没定义,则把整个字符串作为数组的第一个元素数量分割出的最大元素个数,..

5.5.在数组中间插入元素

评论(0)浏览(78)分类:flash/flex/fcs/AIR
5.5.在数组中间插入元素问题我要在数组中间插入元素u解决办法使用splice( ) 方法讨论splice( ) 方法不仅可以删除元素,也可以插入元素,插入的元素放到第2个参数之后,当第2个参数为0代表插入元素:+展开-ActionScriptvarletters:Array=["a","b","c","d"];//插入三个元素,起始位置为1letters.splice(1,0,"r","s","t");//letters现在包含的元素有://"a","r","s","t","..

5.4.删除数组元素

评论(0)浏览(183)分类:flash/flex/fcs/AIR
5.4.删除数组元素问题我要删除一个或多个数组元素,或移动数组元素解决办法splice( ) 方法删除指定位置的元素,pop( ) 删除尾部元素,shift( ) 删除首部元素讨论删除指定位置的元素使用splice( ) 方法,它需要两个参数:start开始下标deleteCount删除的元素个数,如果没有定义,则从起始位置到末尾全部删除:+展开-ActionScriptvarletters:Array=["a","b","c","d..

5.3.搜索匹配的数组元素

评论(0)浏览(107)分类:flash/flex/fcs/AIR
5.3.搜索匹配的数组元素问题我要找出指定值得数组元素解决办法用for 语句和break 语句就能找到匹配的元素。另外用ArrayUtilities.findMatchIndex( ),ArrayUtilities.findLastMatchIndex( ), 和ArrayUtilities.findMatchIndices( ) 方法讨论用for循环查找第一个匹配的元素后,用break立即返回,这样就实现功能了。break应该在if语句里进行判断,是否找到匹配元素,找到则..

5.2.遍历数组成员

评论(0)浏览(109)分类:flash/flex/fcs/AIR
5.2.遍历数组成员问题我要访问数组的每个元素解决办法利用for 循环来遍历数组,使用下标返回元素。讨论for循环的初始变量从0开始,结束为array.length-1,因为是从下标0开始的:+展开-ActionScriptvarletters:Array=["a","b","c"];for(vari:int=0;iletters.length;i++){trace("Element"+i+":"+letters[i]);}也可以降序遍历数组,循环变量从array.length-1开始到0..

5.1.在数组首部和尾部添加元素

评论(0)浏览(67)分类:flash/flex/fcs/AIR
5.1.在数组首部和尾部添加元素问题我要再添加新元素到数组解决办法push( ) 方法在数组尾部添加元素,unshift( ) 方法在数组首部插入元素讨论Array.push( ) 方法把元素加在数组的尾部,也可以一次添加多个值:+展开-ActionScriptvararray:Array=newArray();array.push("val1","val2");也可以在数组指定的下标位置设置值,下标位置在0到Array .length - 1之间:+展开-ActionScr..

5.0.简介

评论(0)浏览(65)分类:flash/flex/fcs/AIR
5.0.简介数组保存一组相关联的数据,组织和处理这些数据。数组概念在生活中是很常见的,比如菜谱,包含姓名,地址,生日等地址本都是数组原理。在ActionScript中,有两种数组:整型下标和联合数组,都是组织相关数据,只是访问数据的方法不同而已。整型下标数组:数组的每个元素都用唯一的整数下标来索引。通过下标排序,起始值为0,每个元素保存在索引指..

第五章.数组

评论(0)浏览(71)分类:flash/flex/fcs/AIR
第五章.数组5.0.简介5.1.在数组首部和尾部添加元素5.2.遍历数组成员5.3.搜索匹配的数组元素5.4.删除数组元素5.5.在数组中间插入元素5.6.转换字符串为数组5.7.转换数组为字符串5.8.创建数组的拷贝5.9.存储多维数据5.10.数组排序5.11.实现自定义排序5.12.数组元素的随机排序5.13.取得数组元素的最大值和最小值5.14.比较数组5.15.创建关联数组5.16.读取关联数组

4.12.计算两点之间的距离

评论(1)浏览(162)分类:flash/flex/fcs/AIR
4.12.计算两点之间的距离问题我要计算两点之间的距离解决办法根据勾股定理,使用Math.pow( ) 和Math.sqrt( ) 联合计算讨论通过勾股定理可以计算出两点之间的距离(直线)。一个三角形,最长边的平方等于其他两边的平方和:a2 + b2 = c2根据这个公式可以计算出两点之间的距离,a 是两点X坐标的差值,b 是两点Y坐标的差值:+展开-ActionScriptvarc:Number=Math.sqrt(Math...

4.11.转换角度计算

评论(0)浏览(94)分类:flash/flex/fcs/AIR
4.11.转换角度计算问题我要计算角度及转换为合适的单位解决办法使用Unit 和Converter 类讨论影片剪辑的_rotation 属性使用角度计算的。如果用弧度而不是角度就有些麻烦了。首先要把弧度值转换为角度值,再赋值给_rotation 属性,而且,大多数人喜欢用角度计算。还好,把弧度转换为角度挺容易,只要180/Math.PI.,角度转换为弧度就反一下,Math.PI/180. ,而且使用..

4.10.产生唯一的随机数

评论(0)浏览(159)分类:flash/flex/fcs/AIR
4.10.产生唯一的随机数问题我要产生唯一数解决办法使用NumberUtilities.getUnique( ) 方法讨论唯一随机数经常在产生唯一的URL 时用到。就是在URL后加上个唯一的数字,以区别于使用过的URL,因此浏览器总是会去调用远程服务器而不是访问缓存NumberUtilities.getUnique( ) 返回基于毫秒的数字+展开-ActionScripttrace(NumberUtilities.getUnique());下面的代码产生一组唯..

4.9.模拟骰子

评论(0)浏览(148)分类:flash/flex/fcs/AIR
4.9.模拟骰子问题我要模仿掷骰子解决办法用NumberUtilities.random( ) 方法产生指定范围的随机数讨论用random( ) 方法产生整数来模拟掷骰子,这在很多游戏中经常用到,这次我们在ActionScript中实现一般我们产生随机数然后保存它在使用,如果要重新使用存在的随机数,应保存它而不是再产生新的随机数。注意下面两种情况,第一种,dice总是die1和die2的之和:..

4.8.模拟硬币投掷

评论(0)浏览(92)分类:flash/flex/fcs/AIR
4.8.模拟硬币投掷问题我要模拟硬币投掷或布尔事件来达到50%几率成功。解决办法用NumberUtilities.random( ) 方法产生0 到1的整数,根据每种可能得出结果。讨论用random( ) 方法产生指定范围的随机整数,能够产生两个结果对应硬币的正面和反面状态,在程序里我们用0代表一个状态,1代表另一状态,当然你用1和2也是可以的,总之是2个状态,这样就能模拟硬币投掷了:..

4.7.生成随机数

评论(0)浏览(105)分类:flash/flex/fcs/AIR
4.7.生成随机数问题我要生成随机数解决办法使用Math.random( ) 方法生成0 到.999999的随机数。还有,是用NumberUtilities.random( ) 方法可以生成指定范围的随机数讨论Math.random( ) 方法产生0 到0.999999999的浮点随机数。大多数情况我们希望产生整数而不是浮点数,还好随机值可以指定精度。NumberUtilities.random( ) 方法产生指定的范围和精度,它接受三个..

4.6.格式化货币数字

评论(0)浏览(101)分类:flash/flex/fcs/AIR
4.6.格式化货币数字问题我要格式化货币,比如美元解决办法使用NumberFormat.currencyFormat( ) 方法讨论不像其他语言,比如ColdFusion,ActionScript 没有提供内建的函数格式化货币数字。自定义类NumberFormat 包括一个currencyFormat( )方法。currencyFormat( ) 至少需要一个参数,看下面的简单代码:+展开-ActionScriptvarstyler:NumberFormat=newNumberFormat()..

4.5.不使用掩码进行数字格式化

评论(0)浏览(62)分类:flash/flex/fcs/AIR
4.5.不使用掩码进行数字格式化问题我不想使用掩码进行格式化解决办法用NumberFormat 对象不设置掩码,调用format( ) 方法讨论4.4 节讨论了各种复杂的数字格式化方法,但是能不能不用那么复杂呢,NumberFormat 类提供了一个简单的办法,只使用最简单的format( )方法:+展开-ActionScriptvarstyler:NumberFormat=newNumberFormat();trace(styler.format(12.3));trace(styler.fo..

4.4.格式化输出

评论(0)浏览(85)分类:flash/flex/fcs/AIR
4.4.格式化输出问题我要把数字进行格式化输出解决办法用NumberFormat 类,设置掩码,然后调用format( ) 方法。讨论经常会遇到需要在输出时在头部和尾部加0或空格来达到格式化输出的目的,比如显示时间或日期。比如要格式化输出6小时3分钟,显示为6:03 或06:03,而不是6:3。而且还经常碰到输出时进行对齐等,这都需要进行格式化输出:123456789 1234567 123..

4.3.四舍五入

评论(0)浏览(100)分类:flash/flex/fcs/AIR
4.3.四舍五入问题我要进行四舍五入或取近似值.解决办法用Math.round( ) 进行四舍五入, Math.floor( ) 和Math.ceil( ) 进行上下近似值。NumberUtilities.round( ) 方法可自定义取值。讨论很多情况我们需要得到整数部分而不是带有小数的浮点数。比如计算出结果为3.9999999 ,期望的结果应该是4.0。+展开-ActionScriptMath.round()方法进行四舍五入计算:trace..

4.2.不同数字类型之间的转换

评论(0)浏览(99)分类:flash/flex/fcs/AIR
4.2.不同数字类型之间的转换问题我要把当前数字类型转换为别的数字类型解决办法用parseInt( ) 函数把字符串转换为十进制数,用Number, uint, 或int 对象的toString( ) 方法转换为字符串。讨论在ActionScript中不管你怎么设置数字,它的内部结果总是以十进制存贮:+展开-ActionScript//创建颜色对象varpink:ColorTransform=newColorTransform();//用十六进制设置RGBpink.rgb..

4.1.数字的不同表现形式

评论(0)浏览(87)分类:flash/flex/fcs/AIR
4.1.数字的不同表现形式问题我要指定数字为十进制,八进制或十六进制解决办法十六进制以0x开头,八进制以0开头,二进制不能直接表示,可以用等价的八进制或十六进制或用parseInt() 函数转换字符为数字。讨论ActionScript 中各种格式使用是很方便的。比如,如果你要设置Sprite.rotation 属性,最好是用十进制数:+展开-ActionScriptrectangleSprite.rotation=180;另一方..

4.0.简介

评论(0)浏览(105)分类:flash/flex/fcs/AIR
4.0.简介数字的用法非常广泛,有多种表示形式,如十进制,十六进制,每种表示都有其特定用处,比如,十六进制经常来表示RGB 颜色值。(看4.2关于如何在各种表示法之间进行转换) 。数字和数学紧密相关,没有数学运算,Flash将非常迟钝。像加法和减法等简单运算在ActionScript经常用到,还有些运算,如随机数生成也是很常用的。ActionScript 3.0 有三种基..