Flex学习笔记12——as学习
?
ActionScript的特征1.? 运行时,能识别出动态类型转换的错误 2.? 异常处理机制 3.? 正则表达式 4.? 新的primitive type: Number(double和float精度数字),int(32位整数), unit(32位无符号整数,用于RGBcolor,字节数) 面向对象语法?????? 只记录了与java不一样的地方 ?????? 类有四种修饰符public,internal(类似于friendly) dynamic(后期可添加函数,比较少用)和final ?????? 在As文件中,package中只能 有一个类,不在package中的类为从属类,不能为外部访问 ?????? 子类不能定义父类中已存在的非private属性,会提示编译错误。覆盖父类方法,前面加上override,调用父类被覆盖方法:super.fun() ?????? 接口中不能定义变量或常量,只能定义方法,而且方法没有修饰符,实现类中方法声明为public ?????? var top:* 表示top变量类型不确定 数据类型?????? Primitive类型: Boolean? int?? Null?? Number? String? unit? void ?????????? int代表32位有符号的证书,unit为无符号的32位整数, Number为64位浮点数。选择原则:如果只处理整数,优先选择int和颜色相关的选择unit,有可能是小数的使用Number,int发生溢出的整数也使用Number。使用unit要保证其不小于0. ?????? 复合数据类型:Object? Array? Date Error?? Function?? RegExp?? XML? XMLList ?????? 数字计算除了 + - * / %,还有Math类 ?????? 定义数组? var typeArray:Array=[],可以为数组指定排序规则和方向,如 nums.sort(Array.NUMERIC|Array.DESCENDING), sortON可以对多维数组或集合元素为对象进行排序? students.sortOn(“age”,Array.NUMERIC) ?????? 类型监测和转换:? 监测? 对象 is 类型??? 强制转换? 类型(对象名) ??? 常量使用const定义 :? public const STR:String="abc"; ??? XML类型,变量名或id代表根节点,使用时应该是 id.nodes而不是id.root.nodes。对于从多个节点得到数组要指定到节点本身,而不是其父节点 控制程序流程?????? Switch(条件表达式)? 可以为任意类型,只要值和case相同 ??????? 循环? for( in ) 对数组和对象循环,循环变量为序号;? for each( in ) 对数组和对象循环,循环变量为值 ?????? Break在多重循环中,只跳出一从循环,同java中 基本内容????类型运算:? typeof 19?? 以字符串形式返回类型名;? 19 is Number? 判断是否为所属类型;? 19 as int 转换为int类型,失败时返回null int(10)也能转换类型,当失败时抛出异常 ActionScript的函数
|
条件 |
说明 |
备注 |
遍历操作 |
ForEach(callBack:Function,object:*=null):void |
对数组进行遍历,回调函数不返回值 |
过滤器 |
Filter(callBack:Function,object:*=null):Array |
类似于apache.common中的select, 回调函数返回单个新数组元素 |
映射器 |
Map(callBack:Function,object:*=null):Array |
类似于common中的transform,回调函数返回单个新数组元素 |
有一个满足为真 |
Some(callBack:Function,object:*=null):Boolean |
只要有一个元素能让回调函数返回true,则some返回true,否则为false。回调函数返回单个元素比较结果 |
全部满足为真 |
every(callBack:Function,object:*=null):Boolean |
必须所有元素能让回调函数返回true,则every返回true,否则为false。回调函数返回单个元素比较结果 |
?????? 回调函数格式 function 函数名(元素:类型,索引:int,数组对象:Array):返回值 {}
String
字符函数
?????? charAt()? charCodeAt() [返回unicode值]? fromCharCode()
java中的StringBuilder酒使用+代替
运算符? + +=? <? <=? >? >=(比较从左到右)
字符串操作
?????? 查找? indexOf??? lastIndexOf(参数为普通字符串)?? search(参数为正则表达式)
?????? 返回字串?? substring和slice根据起点和终点来提取的, substr由起点和长度决定
?????? 分割字串?? split(参数可以为正则表达式)? var delimeter:RegExp=//d+/
?????? 匹配?????? match(参数可以为正则表达式)?
?????? 替换?????? replace
?????? 大小写转换? toLowerCase? toUpperCase
?????? 工具类?? mx.utils.StringUtil?
正则表达式的结合
?????? Search() 返回第一次匹配的索引位置;? match() 返回匹配的字符串,如有g,则返回匹配的字符串数组。 Replace 正则表达式进行查找替换
XML
数据结构
????? 有大段文本,尤其是包含空格和特殊字符使用子元素,否则使用属性,减少层次
常用的数据类型:
???? XML: 只有一个根节点,支持实时修改和解析数据
?????????????? Var xml:XML=<item text=’a’/>
?????????????? 在XML中可用已有变量直接构成XML,使用{}括起来
???? XMLList:? 相当于xml的数组,没有太强大的API支持
???? XMLListCollection: 实现对XMLList的操作
修改运算
?????? Item.toXMLString输出节点;? item.toString输出text
?????? 只有xml可以修改,而xmllist会发生运行时错误
?????? Item.@text=”b” 修改或新建属性
?????? Item.child=new XML() //添加一空白子节点
?????? Item.child=<item text=”b”/>?
??? Item.child=”china”? //新建子节点 <child>china</child>
?????? Delete 删除子元素或属性
查询运算
?????? .. 所有子元素
?????? * king.site.@*.toXMLString()? 查找site的所有属性
?????? 使用表达式
????????????? healths.floor.(@id==floor.@id)
?????? 使用正则表达式,即在查询表达式中使用match
????????????? King.site.(pageview.match(/^5d+/)) 查找子元素文本为5开头数字的site元素
?????? 使用自定义函数
??????????? King.site.(check(pageview));
??????????? Function check(t:*):Boolean {} //t为传入的 xml或xmllist
网络通信
?????? 可使用URL Request读取文件,URLLoaderDataFormat.text为文本文件;URLLoaderDataFormat.variables为properties文件,在Complete中使用for遍历loader.data;URLLoaderDataFormat.binary为二进制文件, event.target.data as ByteArray
?????? 监控加载进度? ProgressEvent的两个属性 bytesLoader? bytesTotal
?????? 打开网址,使用flash.net.navigateToURL
AS视觉编程
?????? Stage是最根本的容器,包括当前swf,一个应用程序只能有一个
?????? 只有addChild加入的内容才会进行渲染
?????? <mx:Image> 将图片显示出来,其source可以为url,或者为BitMap对象。 BitMap表示位图对象, BitMapData得到BitMap的像素信息,并通过函数 draw()可以完成形变处理。Shape为矢量图。Sprite为轻量级的容器,是首选。 MovieClip通常由flash创建工具绘制
?????? 所有的显示对象是UIComponent的子类或实现IUIComponent接口
DisplayObject类与矢量图、位图
?????? DisplayObject的可视属性有 x,y,width,scalex,scaley(值为后来/原有的)? mouseX? mouseY(当前属性与(x,y)的距离)?? rotation(绕轴点顺时针旋转的角度)
?????? Shape创建步骤:
????????????? Var circle:Shape=new Shape();
????????????? Circle.graphics.beginFill()?? //设置线头样式,填色
????????????? Circle.graphics.drawCircle? //移动画图点,画线或绘制图形
????????????? Circle.graphics.endFill();?? //结束填色
?????? 位图: Bitmap和BitmapData
?????? 遮罩: 普通遮罩和alpha通道遮罩? DisplayObject.setMask() 进行
?????? 文本:捕获带超链接的文本 TextField.htmlText=”” 字符串中的超链接必须以event:开头(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!