ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:31.77KB ,
资源ID:5962269      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5962269.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AS3实用函数与常用算法.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AS3实用函数与常用算法.docx

1、AS3实用函数与常用算法AS3实用函数与常用算法【鼠标坐标】mouseX mouseY【检查变量类型并返回布尔值】is【检查变量类型并返回类型】typeof【检查对象类型并返回该对象】as【是数字但不是有效数字问题】var quantity:Number = 15 “rabbits”; trace(typeof quantity); /显示: “number” , 但它是NaN (not a number) trace(quantity is Number); /true trace(quantity != NaN); /false /使用isNaN()函数检测: isNaN(quantity

2、); /true /检测变量是否内含有效数字: !isNaN(quantity); /false【取消默认的严格编译模式】在”Navigator”窗框里右键你的项目选中”Properties”选中”ActionScript Compiler”取消”Enabel compile-time type checking”选项【基元数据类型和复杂数据类型好比”值类型”和”引用类型”】基元数据类型类似按值传递: var intOne:int = 1; var intTwo:int = 1; trace(intOne = intTwo); /true【复杂数据类型类似按引用传递】var arrayOne:

3、Array = new Array(“a”, “b”); var arrayTwo:Array = arrayOne; trace(arrayOne = arrayTwo); /true / var arrayOne:Array = new Array(“a”, “b”); var arrayTwo:Array = new Array(“a”, “b”); trace(arrayOne = arrayTwo); /false【优化逻辑AND(&)和OR(|)的小知识】对于逻辑And(&): 除非条件表达式的前半部分为真,否则,ActionScript不会再去求算逻辑AND运算符的后半部.如果前

4、半部为假,整个条件表达式一定为假,所以再去求算后半部就没效率了. 对于逻辑OR(|): 除非条件表达式前半部为假,否则,ActionScript不会再去求算逻辑OR运算符的后半部,如果前半部为真,整个条件表达式一定为真. 总结:使用逻辑AND(&)时,把结果最可能为false的表达式放到前面;使用逻辑OR(|)时,把结果最可能为true的表达式放到前面.【Timer类注意事项】不要认为Timer可以极其准确;使用Timer时间间隔不要低于10毫秒.【private,protected,internal,public访问权限】private:只能在类本身内部访问,按惯例,命名私有成员时以下划线”

5、_”开头; protected:可以由类本身或任何子类访问.但这是以实例为基础的.换言之,类实例可以访问自己的保护成员或者父类的保护成员,但不能访问相同类的其它实例的保护成员,按惯例,命名保护成员时以下划线”_”开头; internal:可以由类本身或者相同包内的任何类访问; public:可以在类内部访问,也可以由类实例访问,或者声明为static时,可以直接从类访问.【一个函数具有未知个数的参数,用arguments对象或”(rest)”符号访问它的参数】注意:使用”(rest)”参数会使 arguments 对象不可用; private funciton average():void t

6、race(arguments.length); /输出参数的个数 / arguments的类型是:object,但可以像访问数组一样去访问它 trace(arguments1); /输出第二个参数 private function average(argu):void trace(argu1); /输出第二个参数,argu参数名是自定义的. 【错误处理try,catch,finally】private function tryError():void try trace(“测试开始-try”); throwError(); catch(errObject:Error) trace(“错误信息:

7、” + errObject.message); trace(“测试结束-catch”); return; finally trace(“虽然catch里已经有return方法,但位于return方法后面的finally里的代码依然会被执行.其实无论return方法是在try里,还是catch里,finally里的代码始终会被执行”); trace(“前面已经有return了,此处是不会再执行的.除非没有抛出错误,以使catch里的代码没有被执行”); private function throwError():void throw new Error(“抛出错误”); 【forin与for e

8、achin的区别】与forin循环不同的是,for eachin循环中的迭代变量包含属性所保存的值,而不包含属性的名称(或主键,索引).【命名包路径的小技巧】 使用相应于拥有者和相关项目的包名称会比较好.按惯例来讲,包名称的开头应该是逆向的网址名称.例如,如果Example Corp()写了一些actionscript3.0类,就会把所有类放在com.examplecorp包内(或者 com.examplecorp的子包内).如此一来,如果英国有另一家Example Corp(examplecorp.co.uk)也写了一些ActionScript3.0类,只要使用包uk.co.examplec

9、orp,就可确保唯一性. 当类属于特定应用程序的一部分时,就应该放在该应用程序特定的子包内.例如,Example Corp可能有个应用程序名叫WidgetStore.如果WidgetStore应用程序使用一个名为ApplicationManager的类,则此类就应该放在com.examplecorp.widgetstore包内,或者位于该包的子包内. 按惯例来说,包名称的开头是小写字母.【隐式的取出方法(getter)和设定方法(setter)】public function get count():uint return _count; public function set count(v

10、alue:uint):uint if(value 100) _count = value; else throw Error(); 【确保类是绝不会有子类,使用final】final public class Example【super关键字的使用】super(); /父类的构造函数,只能在类实例构造函数内部使用 super.propertyName; /调用父类的属性,属性需要声明为public或protected super.methodName(); /调用父类的方法,方法需要声明为public或protected【建立常数,使用关键字const而不是var】static public

11、const EXAMPLE:String = “example”;【检测播放器版本】Flash.system.Capabilities.version 对于8.5版以前的任何Flash Player版本,这种方法都不适用.【判断客户端系统】flash.system.Capabilities.os【检测播放器类型】flash.system.Capabilities.playerType 可能的值有: “StandAlone”,用于独立的 Flash Player “External”,用于外部的 Flash Player 或处于测试模式下 “PlugIn”,用于 Flash Player 浏览器

12、插件 “ActiveX”,用于 Microsoft Internet Explorer 使用的 Flash Player ActiveX 控件【检测系统语言】flash.system.Capabilities.language【判断用户是否启用了IME(输入法编辑器)】flash.system.IME.enabled【检测屏幕的分辨率】flash.system.Capabilities.screenResolutionX flash.system.Capabilities.screenResolutionY【把弹出窗口居中的算法】X = (舞台宽/2)-(窗口宽/2) Y = (舞台高/2)-

13、(窗口高/2)【控制影片配合Player的方式,包括缩放问题】stage.scaleMode 可供选择值:flash.display.StageScaleMode【舞台的对齐方式】stage.align 可供选择值:flash.display.StageAlign【隐藏Flash Player的右键菜单】stage.showDefaultContextMenu = false;【检测系统是否具有音频功能】flash.system.Capabilities.hasAudio【检测播放器是在具有MP3解码器的系统上运行,还是在没有MP3解码器的系统上运行】flash.system.Capabili

14、ties.hasMP3【检测播放器能 (true) 还是不能 (false) 播放流式视频】flash.system.Capabilities.hasStreamingVideo【检测播放器是在支持 (true) 嵌入视频的系统上运行,还是在不支持 (false) 嵌入视频的系统上运行】flash.system.Capabilities.hasEmbeddedVideo【检测播放器能 (true) 还是不能 (false) 对视频流(如来自 Web 摄像头的视频流)进行编码】flash.system.Capabilities.hasVideoEncoder【显示 Flash Player 中的

15、”安全设置”面板】flash.system.Security.showSettings(); 可供选择项:flash.system.SecurityPanel【让其它域的.swf访问本域的.swf】在本域的.swf文件里加上:flash.system.Security.allowDomain() 或者使用安全策略文件”crossdomain.xml”.在Flash 8以前,这个文件必须放在.swf所在域的根目录,现在,你可以使用flash.system.Security.loadPolicyFile(),指定安全策略文件所在的位置.拒绝任何域的做法是在标签内什么也不填,安全策略文件也支持通用字

16、符 “*”: allow-access-from domain=http:/as3.aa- 【数字的不同进制之间的转换】parseInt(str:String, radix:uint = 0):Number 返回十进制的数,参数radix表示要分析的数字的基数.如果省略radix,就默认为10,除非字符串的开头是”0x”,”0X”或”0: trace(parseInt(“012); /设定radix为16,输出:18 trace(parseInt(“017); /设定radix为8,输出:15 或者使用Number,uint和int对象的toString(radix)方法.【使用Math.ro

17、und()对一个数取整,四舍五入】Math.round() trace(Math.round(204.499); /输出:204 trace(Math.round(401.5); /输出:402【使用Math.floor()对一个数向下取整,就是只要整数部分而不理会小数分】trace(Math.floor(204.99); /输出:204【使用Math.ceil()对一个数向上取整,只要小数部分不为零,整数部分就加1】trace(Math.ceil(401.01); /输出:402【产生一个随机数】使用Math.random()产生一个伪随机数n,其中 0 = n 1【把数字取至最近的小数点位

18、,即指定精确度】1. 决定你要取的数字的小数点位数:例如,如果你想把90.337取成90.34,就表示你要取到两位小数点位,也就是说你想取至最近的0.01; 2. 让输入值除以步骤1所选的数字(此例为0.01); 3. 使用Math.round()把步骤2所计得的值取成最近的整数; 4. 把步骤3所得的结果乘以步骤2用于除法的那个值. 例如,要把90.337取成两个小数点位数,可以使用: trace(Math.round(90.337/0.01)*0.01); /输出:90.34【把数字取成一个整数的最接近倍数值】例1,这样会把92.5取成5的最近倍数值: trace(Math.round(9

19、2.5/5)*5); /输出:95 例2,这样会把92.5取成10的最近倍数值: trace(Math.round(92.5/10)*10); /输出:90【在指定数值范围内获得随机数】/可取范围:min, max private function randRange(min:Number, max:Number):Number var randomNum:Number = Math.floor(Math.random() * (max min + 1) + min; return randomNum; 应用例子: 模拟投银币,即希望得到随机布尔值(true 或 false): randRan

20、ge(0, 1); 模拟投骰子,即希望得到随机六个值: randRange(1, 6); 为避免被缓存而需要产生一个独一无二的数字追加在URL尾端,通常最佳方法是取得当前毫秒数.【弧度(radian)与度数(degree)之间的转换】从弧度转为度数: degrees = radians * 180 / Math.PI 从度数转为弧度: radians = degrees * Math.PI / 180【计算两点之间的距离】勾股定理: c2 = a2 + b2 假设有两个影片剪辑mc1和mc2,则它们两点间的距离c为: var c:Number = Math.sqrt(Math.pow(mc1.

21、x mc2.x, 2) + Math.pow(mc1.y mc2.y, 2);【模拟圆周运动】已知圆心o(x0, y0),半径r和弧度angle,求圆上任意一点P(x, y)的坐标: x = x0 + (Math.cos(angle) * r); y = y0 + (Math.sin(angle) * r); 注意:舞台的x轴正方向水平向右,y轴正方向垂直向下.【模拟椭圆运动】已知圆心o(x0, y0),长轴a,短轴b以及弧度angle,求圆上任意一点P(x, y)的坐标: x = x0 + (Math.cos(angle) * a); y = y0 + (Math.sin(angle) *

22、b);【华氏温度和摄氏温度之间的转换】华氏温度 = 摄氏度数 * 9 / 5 + 32 摄氏温度 = (华氏度数 32) * 5 /9【公斤与磅之间的转换】公斤 = 磅 * 2.2 磅 = 公斤 / 2.2【向数组尾端添加元素】var array:Array = new Array(); array.push(“a”, “b”); /向数组尾端添加单一元素也可以这样: arrayarray.length = “c”; /如果以索引设定的元素不存在,数组本身会自动扩展以包含足够的元素数目.介于中间的元素会被设为undefined: array5 = “e”; trace(array4); /输出

23、: undefined【向数组开端添加元素】var array:Array = a, b; array.unshift(“c”, “d”); trace(array); /输出: c,d,a,b【删除数组中第一个元素并返回该元素,使用shift()方法】var letters:Array = new Array(“a”, “b”, “c”); var firstLetter:String = letters.shift(); trace(letters); /输出: b,c trace(firstLetter); /输出: a【删除数组中最后一个元素并返回该元素的值,使用pop()方法】var

24、 letters:Array = new Array(“a”, “b”, “c”); trace(letters); /输出: a,b,c var letter:String = letters.pop(); trace(letters); /输出: a,b trace(letter); /输出: c【删除数组中的元素,给数组添加新元素并返回删除的元素,使用splice()方法】splice(startIndex:int, deleteCount:uint, values):Array startIndex: 一个整数,它指定数组中开始进行插入或删除的位置处的元素的索引; deleteCoun

25、t: 一个整数,它指定要删除的元素数量; values: 用逗号分隔的一个或多个值的可选列表或数组,此列表或数组将插入到此数组中由 startIndex 参数指定的位置.【查找数组中第一个相匹配的元素】var array:Array = a, b, c, d, a, b, c, d; var match:String = “b”; for(var i:int = 0; i = 0; i) if(arrayi = match) trace(“Element with index ” + i + ” found to match ” + match); /输出: Element with inde

26、x 5 found to match b break; 【把字符串转成数组】使用String.split()方法: var list:String = “I am YoungBoy.”; var words:Array = list.split(” “); /以空格作为分隔符将字符串切割 trace(words); /输出: I,am,YoungBoy.【把数组转成字符串】使用String.join()方法: var myArr:Array = new Array(“one”, “two”, “three”); var myStr:String = myArr.join(” and “); t

27、race(myArr); /输出: one,two,three trace(myStr); /输出: one and two and three【使用对象数组处理相关数据】var cars:Array = new Array(); cars.push(make:”Mike”, year:1997, color:”blue”); cars.push(make:”Kelly”, year:1986, color:”red”); for(var i:int = 0; i cars.length; i+) trace(carsi.make + ” ” + carsi.year + ” ” + cars

28、i.color); /输出: / Mike 1997 blue / Kelly 1986 red【在数组中获取最小或最大值】var scores:Array = 10, 4, 15, 8; scores.sort(Array.NUMERIC); trace(“Minimum: ” + scores0); trace(“Maximum: ” + scoresscores.length - 1);【使用for in语句读取关联数组元素】var myObject:Object = new Object(); myObject.name = “YoungBoy”; myObject.age = 20;

29、 for(var i:String in myObject) trace(i + “: ” + myObjecti); /输出: name: YoungBoy / age: 20 注意: for in循环不会显示对象所有的内建属性.例如,循环会显示执行期间新增的特殊属性,但是,不会列出内建对象的方法,即使都是储存在对象属性内.【AVM(ActionScript Virtual Machine,虚拟机)和渲染引擎(Rendering Engine)】AVM负责执行ActionScript程序,而渲染引擎则是把对象绘制在显示器上.【指出容器的显示清单中有多少显示对象】每个容器都有numChildren属性.【把项目新增至显示清单】addChild(child:DisplayObject) addChildAt(child:DisplayObject, index:int) index: 添加该子项的索引位置.如果指定当前占用的索引位置,则该位置以及所有更高位置上的子对象会在子级列表中上移一个位置.【从显示清单中移除项目】removeChild(child:DisplayObject) removeChildAt(ind

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1