说着说着说到重点上来ActionScript3可以显示数学运算、程序控制等复杂的程序功能。
ActionScript3是为Flash/Flex设计的面向对象程序设计语言
如果学过JAVA的同学在这里应该很容易懂。。。
首先是AS3(ActionScript3)变量的声明
注:这里的变量名也是大小写敏感!
【var 变量名:变量类型】
其它的限定与JAVA基本相同 略。。。。
基本数据类型
Number
浮点数也属于Number类型 注 小数点默认为10位
AS3也定义了int(整型) uint(无符号整型)
字符串类型
var tempStr:String = "I am solo";
注:在AS3中使用单引号,和双引号没什么区别
其它类型
Object类型
var obj:Object
其它与JAVA类似不多说
关系运算符
真表示非0 假表示0
XML与XMLList
XML与XMLList的最主要区别在于一个有根节点 一个没有根节点
举例:
<mx:Application xmlns:xml="http://www.adobe.com/2006/mxml" creationComplete="initApp()">
<mx:script>
<![CDATA[
private var dataXml:XML;
private function initApp():void{
data = <root><note type="body" id="b" name="男孩"/><note type="girl" id="t" name="女孩"/></root>;
trace(data);
}
]]
</mx:script>
</mx:Application>
这里的creationComplete 里表示程序初始化后就执行这里的函数。。。
[二]
也可以用XML构造方法来实现
var dataStr:String = "{上面xml节点}";
dataXml = new XML(dataStr);
这里的dataXml就是上面定义的全局变量 注 全局变量可以写在函数外面;
XML中的一些常用函数:
dataXml.elements(); //表示输出根节点下的所有节点包括子节点(如只有一个节点Flex会默认输出其节点的内容如果为空则不输出如想输出其XML可以使用.toXMLString()函数)
等同于dataXml.elements("*")
dataXml.elements("node") //输出节点名称为"node"的所有节点包括子节点
dataXml.node[0].elements(); //输出node[0]下所节点以及其子节点
dataXml.elements().length; // 求出所有元素的个数
dataXml.childNode; // 当不知道某节点在那个位置的时候可以这样写如有同名儿就一并输出. 但保留字不有使用可以使用descendants("childNode");来代替 这样就可以输出。
dataXml.descendants("childNode");
dataXml.descendants("*") 与 dataXml.elements("*") 功能相同
注:dataXml.descendants("*").length 与 dataXml.elements("*").length功能不同
ActionScript基本语法
"creationComplete" 是在s:Application里声明的类似页面加载时运行的...
is 与 as
is 表示“是一种”返回 布尔型
as 表示 “作为” 返回 Object 它是先判断是否属于这个类型后返回 如果不属于返回NULL
例 :
<fx:Script>
protected function application1_creationCompleteHandle():void{
var a:int = 1;
var b:Number = 2;
/*表示把a转换成Number赋值给b*/
b = a as Number;
trace(b);
trace(b is Number) // true
trace(a is Number) // true
}
</fx:Script>
[color=red]可以重写原有方法[/color]
具体做法:
package com.xiao.long{
class MySprite extends flash.display.Sprite{
[color=red] override [/color]public function toString():String{
return "自定义";
}
}
}
[color=red]将字符转换为字符码
var band:String = "Moley lee";
trace(band.charCodeAt(1)); // 246 做为 o;
将字符码转换成字符为fromCharCode()String的静态方法;
var buttonNumber:Number = 246;
trace(String.fromCharCode(buttonNumber))
[code=red]拆分字符串
ActionScript提供了三种方法slice(),subStr(),subString();
slice(start:Number,end:Number):String
和
subString(start:Number,end:Number):String
几乎完全相同只不过slice可以传入负值(负值是指从最后一个开始回数)
subStr()有点不同 它是返回lengh参数
是返回指定的字值内的字符
/*注
说一下ActionScript中Array数组和java可能有些不同它可以不定义长度 也就是说数组的内容是可变的
var topTen:Array = new Array();
这种数组有时也称为矢量;
数组也可以定义为“字面值”用[]放到
[1,2,3] 等价于new Array(1,2,3);
var a:Array = []; //创建一个空数组
在程序中可以方便的使用字面值创建数组;
*/