Flex 3学习笔记

  • 加入SharedObject
  • CSS Style学习
  • 系统信息判断
  • Timer例子

源码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Style>
	Button {
   cornerRadius: 10;
   highlightAlphas: 0.44, 0;
   fillColors: #ffffff, #0099ff, #ffffff, #ffffff;
   textRollOverColor: #0000ff;
   themeColor: #000000;
}
</mx:Style>
<mx:Script>
	<![CDATA[
		import com.velloff.utils.JDBCBean;
		import flash.net.registerClassAlias;
		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>;
			appendText("得到工号为1001的雇员:\n<font color='#0000FF'>"+xml.person.(@no=="1001").name+"</font>");
			var onePerson:XML = <person no="1003"><name>thd_one</name><job>developer</job></person>
			xml.person +=onePerson;	
			appendText("新增工号为1003的雇员后:\n<font color='#0000FF'>"+escapeHTML(xml.toXMLString())+"</font>");		
			delete xml.person[2];
			appendText("删除工号为1003的雇员后:\n<font color='#0000FF'>"+escapeHTML(xml.toXMLString())+"</font>");
		}
		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);
			appendText("原数组数据:<b>1,2,3,4,7</b>");
			appendText("删除数组中的第三个元素后:<b>"+array.join(",").toString()+"</b>");
			var z:Array=array.slice(0,2);
			appendText("得到数组第1,2个元素:<b>"+z.join(",").toString()+"</b>");
			array.push(10);
			appendText("原数组新增一个数10后:<b>"+array.join(",").toString()+"</b>");
			var sortArray:Array=array.sort(Array.DESCENDING|Array.NUMERIC);
			appendText("逆序排列后:<b>"+array.toString()+"</b>");
			array.sort(byCustemer,Array.DESCENDING);
			appendText("自定义排列规则后:<b>"+array.toString()+"</b>");
		}
		
		internal function btnDictClick(evtObj:Event){
			var dict:Dictionary = new Dictionary();
			dict["one"] = 1;
			dict["tow"] = 2;
			appendText("词典中目前有:one:1,two:2,判断one结果:");
			if("one" in dict){
				appendText("词典中有:"+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){
			appendText("...操作符演示:\n<b>1+2+3="+sum(1,2,3)+"</b>,<b>"+"4+5="+sum(4,5)+"</b>");
			appendText("递归阶乘演示:<b>10!="+fact(10)+"</b>");
		}
		internal function btnRegClick(evtObj:Event){
			var oStr:String = "<font color='#0000FF'>一个串</font><font color='#FF0000'>另外一串</font>";
			appendText("原始操作字符串:"+escapeHTML(oStr));
			var reg1:RegExp = /<font color='#0000FF'>(.*)<\/font>/g;
			var reg2:RegExp = /<font color='#0000FF'>(.*?)<\/font>/g;
			appendText("正则表达式"+escapeHTML(reg1.toString())+"结果(贪婪模式):<b>"+escapeHTML(reg1.exec(oStr)[0])+"</b>");
			appendText("正则表达式"+escapeHTML(reg2.toString())+"结果(非贪婪模式)<b>:"+escapeHTML(reg2.exec(oStr)[0])+"</b>");			
		}
		internal function btnFlashVersionClick(evtObj:Event){
			var ver:String = flash.system.Capabilities.version;
			var os:String = flash.system.Capabilities.os;
			var fType:String = flash.system.Capabilities.playerType;
			var lang:String = flash.system.Capabilities.language;
			appendText("Flash版本:<b>"+ver+"</b> 操作系统:<b>"+os+"</b> 播放器类型:<b>"+fType+"</b> 系统语言:<b>"+
			lang+"</b> 输入法编辑器:<b>"+flash.system.IME.enabled.toString()+"</b> 分辨率:<b>"+
			flash.system.Capabilities.screenResolutionX+"X"+flash.system.Capabilities.screenResolutionY+"</b>"+
			" 是否有音频设备:<b>"+flash.system.Capabilities.hasAudio+"</b> MP3解码器:<b>"+flash.system.Capabilities.hasMP3+
			"</b> 是否播放流式视频:<b>"+flash.system.Capabilities.hasStreamingVideo+"</b> 视频流编码:<b>"+flash.system.Capabilities.hasVideoEncoder+
			"</b>");
		}
		internal function btnTimerClick(evtObj:Event){
			var timer:Timer = new Timer(3000);
			timer.addEventListener(TimerEvent.TIMER, onTimer);
			timer.start();
		}
		internal function btnShareObjectClick(evtObj:Event){
			registerClassAlias("com.velloff.utils.JDBCBean",JDBCBean);
			var his:SharedObject = SharedObject.getLocal("storage");
			for each(var ss in his.data){
					if(ss is JDBCBean){
						appendText("访问到jdbc的共享对象数据为:<i>"+(ss as JDBCBean).toString()+"</i>");										
					}
			}
			if(txtInput.text == "") return;
			var jdbc:JDBCBean = new JDBCBean();
			jdbc.driver = "mydriver";
			jdbc.url = "myurl";
			jdbc.username = txtInput.text;
			jdbc.password = "mypwd";
			his.data[txtInput.text] = jdbc;
			appendText("设置jdbc为:<b>"+jdbc.toString()+"</b>");
		}
		internal function btnShareObjectDeleteClick(evtObj:Event){
			var his:SharedObject = SharedObject.getLocal("storage");
			his.clear();
			his.flush();
		}
		private function onTimer(event:TimerEvent):void {
		    appendText("3秒过去了...");
		}		
		internal function btnGraphClick(evtObj:Event){
			var spr:Sprite = new Sprite();
			spr.graphics.beginFill(0xffffff,0.5);
			spr.graphics.lineStyle(1,0xcccccc);
			spr.graphics.drawRect(10,10,50,50);
			spr.graphics.endFill();
			spr.addEventListener(MouseEvent.MOUSE_OVER,inRect);
			spr.addEventListener(MouseEvent.MOUSE_OUT,outRect);
			spr.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
			spr.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
			mylog.addChild(spr);
		}
		private function mouseDown(me:MouseEvent):void
		{
			(me.target as Sprite).startDrag();
		}
		private function mouseUp(me:MouseEvent):void
		{
			var t:Sprite = me.target as Sprite;
			t.stopDrag();
			appendText("拖放结束!");
		}
		private function inRect(fe:MouseEvent):void
		{
			if(fe.target is Sprite){
				var s:Sprite = (fe.target as Sprite);
				s.alpha = 0.5;
			}
		}
		private function outRect(fe:MouseEvent):void
		{
			if(fe.target is Sprite){
				var s:Sprite = (fe.target as Sprite);
				s.alpha = 1.0;
			}			
		}
		internal function setLogScroll() : void
		{
			mylog.verticalScrollPosition = mylog.maxVerticalScrollPosition;
		}
		internal function appendText(str:String):void
		{
			mylog.htmlText += (mylog.htmlText==""?"":"\n") + str ;
			callLater(setLogScroll);
		}		
		function escapeHTML(str:String){
			return str.replace(/</g,"<").replace(/>/g,">");
		}
	]]>
</mx:Script>
	<mx:Button x="10" y="10" label="XML操作演示程序" fontSize="12" id="btnXML" click="btnXMLClick(event)"/>
	<mx:Button x="150" y="10" label="Array操作演示程序" fontSize="12" id="btnArray" click="btnArrayClick(event)"/>
	<mx:Button x="12" y="42" label="词典操作演示程序" fontSize="12" id="btnDict" click="btnDictClick(event)"/>
	<mx:Button x="150" y="42" label="函数相关操作演示程序" fontSize="12" id="btnFunc" click="btnFuncClick(event)"/>
	<mx:TextArea width="100%" height="180" id="mylog" x="10" y="117" fontSize="12"/>
	<mx:Button x="299" y="10" label="正则表达式演示程序" fontSize="12" id="btnReg" click="btnRegClick(event)"/>
	<mx:Button x="450" y="10" label="DisplayObject演示程序" fontSize="12" id="btnGraph" click="btnGraphClick(event)"/>
	<mx:Button x="314" y="42" label="系统信息" fontSize="12" id="btnFlashVersion" click="btnFlashVersionClick(event)"/>
	<mx:Button x="404" y="42" label="Timer学习" fontSize="12" id="btnTimer" click="btnTimerClick(event)"/>
	<mx:Button x="12" y="85" label="ShareObject" fontSize="12" id="btnShareObject" click="btnShareObjectClick(event)"/>
	<mx:TextInput id="txtInput" x="129" y="87" restrict="[a-z|0-9]" toolTip="输入jdbc用户名并作为sharedObject索引" width="89"/>
	<mx:Button x="231" y="85" label="全部清空ShareObject" fontSize="12" id="btnShareObjectDelete" click="btnShareObjectDeleteClick(event)"/>
	
</mx:Application>
 

你可能感兴趣的:(xml,正则表达式,jdbc,Flex,Flash)