AS 3.0语言的魅力(12月1日更新例子)

以前一直用Java,由于某些Web场景的开发不得不用到Flash,所以这几天就可以接触ActionScript 3.0,看了一本介绍AS 3.0语法的书,着实惊诧不已,感觉这门语言与Java目前已十分类似,有些人甚至把他称作是Java,Pascal,JS的结合物,其中Flex Builder开发环境是基于Eclipse,并且Flex的可视化组件和Delphi非常类似而且很好用,特别对他的有些语法比较感兴趣,特别是遵循E4X的XML操作规范,数组词典操作,都非常方便,以下是我在看书的过程中编写的示例代码,如下:

代码如下:

		import mx.controls.Alert;
		internal function btnXMLClick(evtObj:Event){
			var xml:XML=<company>
							<name>空山雪林工作室</name>
							<description>学习测试用的</description>
							<person no="1001">
								<name>cxlh</name>
								<job>manager</job>
							</person>
							<person no="1002">
								<name>otherone</name>
								<job>designer</job>
							</person>							
						</company>;
			Alert.show("得到工号为1001的雇员:"+xml.person.(@no=="1001").name,"提示");
			var onePerson:XML = <person no="1003"><name>thd_one</name><job>developer</job></person>
			xml.person +=onePerson;	
			Alert.show("新增工号为1003的雇员后:"+xml.toXMLString(),"提示");		
			delete xml.person[2];
			Alert.show("删除工号为1003的雇员后:"+xml.toXMLString(),"提示");
		}
		private function byCustemer(valueA:*,valueB:*):Number
		{
			if(valueA == valueB) return 0;
			else if(valueA < valueB) return -1;
			else return 1;
		}
		
		internal function btnArrayClick(evtObj:Event){
			var array:Array = [1,2,3,4,7];
			array.splice(2,1);
			Alert.show("删除数组中的第三个元素后:"+array.join(",").toString());
			var z:Array=array.slice(0,2);
			Alert.show("得到数组第1,2个元素:"+z.join(",").toString());
			array.push(10);
			Alert.show("新增一个数10后:"+array.join(",").toString());
			var sortArray:Array=array.sort(Array.DESCENDING|Array.NUMERIC);
			Alert.show("逆序排列后:"+array.toString());
			array.sort(byCustemer,Array.DESCENDING);
			Alert.show("自定义排列规则后:"+array.toString());
		}
		
		internal function btnDictClick(evtObj:Event){
			var dict:Dictionary = new Dictionary();
			dict["one"] = 1;
			dict["tow"] = 2;
			if("one" in dict){
				Alert.show("词典中有:"+dict["one"]);
			}
		}
		
		function sum(... numbers):Number{
			var result:Number = 0;
			for each(var num:Number in numbers){
				result += num;
			}
			return result;
		}
		
		function fact(i:uint){
			if(i==0)
				return 1;
			else
				return (i*fact(i-1));
		}
		
		internal function btnFuncClick(evtObj:Event){
			Alert.show("...操作符演示:\n1+2+3="+sum(1,2,3)+"\n"+"4+5="+sum(4,5));
			Alert.show("阶乘演示:\n10!="+fact(10));
		}

随着我看书的深入, 我将不断补充这个示例程序。

 

你可能感兴趣的:(xml,Flex,Delphi,pascal,actionscript)