亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iparser.as

?? 用Flex實現的一個關于減肥系統的web界面,內部沒有實際的業務邏輯,只是一個原形.
?? AS
字號:
/*Copyright (c) 2006 Adobe Systems Incorporated

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
*/
package qs.calendar
{
	import qs.calendar.Calendar;
	import qs.calendar.iParserClasses.iParam;
	import qs.calendar.iParserClasses.iProperty;
	import qs.utils.TimeZone;
	import qs.utils.TimeZoneRule;	
	public class iParser
	{
		private var properties:Array = [];
		private var nextProperty:int = 0;
		
		private var current:iProperty;
		private var calendars:Array;
		private var timezoneMap:Object = {};		
		private const COLON_CODE:Number = (":").charCodeAt(0);
		private const SEMI_CODE:Number = (";").charCodeAt(0);
		private const EQUAL_CODE:Number = ("=").charCodeAt(0);
		private const QUOTE_CODE:Number = ("\"").charCodeAt(0);
		private const SPACE_CODE:Number = (" ").charCodeAt(0);
		private const COMMA_CODE:Number = (",").charCodeAt(0);
		
		private function next():Boolean
		{
			if(nextProperty < properties.length)
			{
				current = properties[nextProperty];
				nextProperty++;
				return true;
			}
			return false;
		}
		public function parse(data:String,calendar:Calendar = null):Array
		{
			calendars = [];
			if(calendar != null)
				calendars.push(calendar);
				
			properties = parseToProperties(data);
			
			var calIdx:int = 0;
			while(next())
			{
				if(current.name == "BEGIN" && current.value == "VCALENDAR")
				{
					var nextCal:Calendar = calendars[calIdx];
					if(nextCal == null)
						nextCal = calendars[calIdx] = new Calendar();
					parseCalendar(nextCal);
				}
			}			
			return calendars;
		}
		private function parseCalendar(c:Calendar):Calendar
		{
			var complete:Boolean = false;
			while(complete == false && next())
			{
				switch(current.name)
				{
					case "X-WR-CALNAME":
						c.name = current.value;
						break;
					case "X-WR-TIMEZONE":
//						c.timezone = current.value;
						break;
					case "END":
						if(current.value == "VCALENDAR")
							complete = true;
						break;
					case "BEGIN":
						if(current.value == "VEVENT")
							c.addEvent(parseEvent(c));
						else if (current.value == "VTIMEZONE")
						{
							var zone:TimeZone = parseTimeZone();
							timezoneMap[zone.id] = zone;
						}
						break;
					default:
						break;
				}
			}
			return c;
		}
		private function parseTimeZone():TimeZone
		{
			var z:TimeZone = new TimeZone();
			var complete:Boolean = false;
			while(complete == false && next())
			{
				switch(current.name)
				{
					case "END":
						if(current.value == "VTIMEZONE")
							complete = true;
						break;
					case "TZID":
						z.id = current.value;
						break;
					case "BEGIN":
						if(current.value == "STANDARD")
							z.standard = parseTimeZoneRule();
						else if (current.value == "DAYLIGHT")
							z.daylight = parseTimeZoneRule();
						break;
					default:
						break;
				}
			}
			return z;
			
		}
		
		private function parseTimeZoneRule():TimeZoneRule
		{
			var r:TimeZoneRule = new TimeZoneRule();
			var complete:Boolean = false;
			while(complete == false && next())
			{
				switch(current.name)
				{
					case "END":
						complete = true;
						break;
					case "TZNAME":
						r.name = current.value;
						break;
					case "TZOFFSETFROM":
						r.offsetFrom = current.asUTCOffset();
						break;
					case "TZOFFSETTO":
						r.offsetTo = current.asUTCOffset();
						break;
					case "DTSTART":
						r.start = current.asDateTime();
						break;
					case "RRULE":
						r.repeatRule = current.asRepeatRule();
						break;
					default:
						break;
				}
			}
			return r;
			
		}
		
		private function parseEvent(c:Calendar):CalendarEvent
		{
			var e:CalendarEvent = new CalendarEvent();
			var complete:Boolean = false;
			var end:Date;
			var start:Date;
			var duration:Number;
			var allDay:Boolean = false;
			while(complete == false && next())
			{
				switch(current.name)
				{
					case "END":
						if(current.value == "VEVENT")
							complete = true;
						break;
					case "SUMMARY":
						e.summary = current.value;
						break;
					case "DESCRIPTION":
						e.description = current.value;
						break;
					case "DTSTART":
						if(current.type == "DATE")
							allDay = true;
						start = current.asDateTime();
						break;
					case "DTEND":
						end = current.asDateTime();
						// ics files DTEND is exclusive, 
						// while CalendarEvent objects end is inclusive.
						// so just decriment the end time by one milli.
						end.milliseconds -= 1;
						break;
					case "UID":
						e.uid = current.value;
						break;
					case "LOCATION":
						e.location = current.value;
						break;
					case "DURATION":
						duration = current.asTime() - 1;
						break;
					default:
						e.properties.push(current);						
						break;
				}
			}
			e.start = start;
			if(end != null)
				e.end = end;
			else if (!isNaN(duration))
				e.range.duration = duration;
			e.allDay = allDay;
			return e;
		}
			
		public function parseToProperties(data:String):Array
		{
			var lines:Array = data.split("\r\n");
			var props:Array = [];
			var lineStart:int = 0;
			
			for(var i:int = 1;i<=lines.length;i++)
			{
				var line:String = lines[i];
				if(line != null && line.charAt(0) == " ")
					continue;
				
				var propText:String = lines[lineStart];
				for(var j:int=lineStart+1;j<i;j++)
					propText += lines[j].substr(1);						
					
				if(propText.length == 0)
					continue;
					
				props.push(parseProperty(propText));
								
				lineStart = i;
			}
			return props;
		}
		private function parseProperty(data:String):iProperty
		{
			var p:iProperty = new iProperty();

			var matches:Array = data.match(/(.+?)(;(.*?)=(.*?)((,(.*?)=(.*?))*?))?:(.*)$/);
			p.name = matches[1];
			p.value = matches[9];					
			p.paramString = matches[2];	
			return p;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜婷婷国产麻豆精品| 欧美极品xxx| 欧美videos中文字幕| 欧美极品aⅴ影院| 午夜av区久久| 国产精品自拍一区| 51精品秘密在线观看| 国产精品萝li| 久久er99精品| 在线成人av影院| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 日韩丝袜情趣美女图片| wwwwxxxxx欧美| 亚洲成人黄色小说| av一区二区三区四区| 欧美成人在线直播| 亚洲国产精品一区二区尤物区| 国产成人精品免费在线| 91精品国产91久久久久久一区二区 | 精品在线播放午夜| 欧美在线观看一区二区| 国产欧美一区二区三区在线老狼| 日韩黄色小视频| 91啪亚洲精品| 久久久99精品久久| 奇米影视一区二区三区| 欧美狂野另类xxxxoooo| 亚洲少妇最新在线视频| 大陆成人av片| 2021国产精品久久精品| 精品一区在线看| 欧美日韩高清影院| 亚洲最新在线观看| 91丨九色丨尤物| 国产精品白丝在线| 国产成人啪免费观看软件 | 国产精品一二三在| 久久先锋影音av鲁色资源网| 日韩成人av影视| 欧美日韩国产综合一区二区| 欧美高清在线视频| 国产精品夜夜嗨| 精品久久五月天| 日本不卡123| 在线电影欧美成精品| 亚洲狠狠爱一区二区三区| 色哟哟亚洲精品| 最新欧美精品一区二区三区| 国产成人日日夜夜| 久久色成人在线| 精品一区二区三区在线观看国产| 欧美日本韩国一区二区三区视频| 丝袜亚洲另类欧美| 欧美日韩精品一区视频| 亚洲国产成人av好男人在线观看| 色婷婷久久99综合精品jk白丝| 一区二区三区四区在线免费观看| 99国产精品久久久久久久久久| 精品国产网站在线观看| 久久99久久久久| 这里只有精品99re| 美女在线视频一区| 日韩欧美亚洲一区二区| 久久精品国产精品亚洲精品| 337p粉嫩大胆噜噜噜噜噜91av| 国产福利91精品| 国产精品理论在线观看| 国产mv日韩mv欧美| 亚洲欧美自拍偷拍色图| 91在线视频官网| 亚洲愉拍自拍另类高清精品| 国产乱色国产精品免费视频| 中文字幕成人在线观看| 成人午夜视频网站| 久久久久国产成人精品亚洲午夜| jlzzjlzz欧美大全| 亚洲精品乱码久久久久久黑人| 欧美综合久久久| 秋霞成人午夜伦在线观看| 欧美揉bbbbb揉bbbbb| 美日韩一级片在线观看| 精品国产三级电影在线观看| 成人精品免费视频| 中文字幕在线不卡国产视频| 色综合色综合色综合| 亚洲一区二区欧美| 精品国产91乱码一区二区三区| 国产成人精品一区二| 亚洲四区在线观看| 欧美日韩精品一区视频| 国产综合色在线| 综合中文字幕亚洲| 欧洲中文字幕精品| 麻豆91精品视频| 国产精品久久久久久久久动漫 | 亚洲一区二区三区中文字幕| 制服丝袜日韩国产| 成人免费黄色大片| 亚洲第一主播视频| 久久蜜桃香蕉精品一区二区三区| 不卡的av电影| 丝袜亚洲另类丝袜在线| 国产精品超碰97尤物18| 91精品国产色综合久久| 成人美女视频在线观看| 亚洲视频资源在线| 日韩欧美在线网站| 成人黄页在线观看| 日本成人在线看| 国产精品久线在线观看| 91精品国产欧美日韩| 成人看片黄a免费看在线| 亚洲最大成人网4388xx| 久久亚洲精品小早川怜子| 91官网在线观看| 国产一区二区三区四区五区美女| 国产在线精品免费| 国产亚洲一区二区三区在线观看| 99免费精品视频| 国产乱理伦片在线观看夜一区| 亚洲自拍欧美精品| 亚洲欧美自拍偷拍| 欧美精品一区二区三| 欧美色电影在线| 波多野结衣欧美| 国产一区啦啦啦在线观看| 亚洲一区二区三区国产| 椎名由奈av一区二区三区| 日韩欧美精品在线| 欧美精品一二三区| 色综合久久66| 99久久综合99久久综合网站| 精品一区二区三区在线观看 | 日韩欧美一二三区| 欧美在线观看视频一区二区三区| 成人自拍视频在线观看| 激情文学综合丁香| 日韩在线一二三区| 一区二区三区日韩欧美| 国产精品福利电影一区二区三区四区| 2欧美一区二区三区在线观看视频| 欧美高清激情brazzers| 欧洲一区二区av| 99re热视频精品| 成人黄色小视频| 国产乱人伦偷精品视频不卡| 国产在线不卡一区| 另类中文字幕网| 极品少妇xxxx精品少妇| 调教+趴+乳夹+国产+精品| 亚洲福中文字幕伊人影院| 亚洲欧美另类综合偷拍| 亚洲精品国产成人久久av盗摄| 中文幕一区二区三区久久蜜桃| 日本一区二区三区四区在线视频| 久久综合色播五月| 国产三级一区二区| 久久久91精品国产一区二区精品| 国产网站一区二区| 久久先锋资源网| 欧美精品一区在线观看| 精品88久久久久88久久久| 欧美一区日韩一区| 555www色欧美视频| 欧美美女一区二区| 欧美日韩一区三区四区| 欧美日韩久久久| 欧美高清视频一二三区| 色婷婷综合五月| 在线观看91精品国产入口| 欧美在线色视频| 日韩一区二区三区av| 91麻豆精品国产自产在线| 日韩欧美色综合网站| 欧美成人国产一区二区| 久久精品一区四区| 欧美激情一区三区| 亚洲色图另类专区| 一区二区三区四区在线播放| 日韩成人精品在线观看| 久久国内精品视频| 国产美女在线精品| aa级大片欧美| 欧美亚洲一区二区在线| 欧美一区二区三区在| 欧美成人精品1314www| 国产精品私房写真福利视频| 中文字幕人成不卡一区| 天天操天天干天天综合网| 日本在线观看不卡视频| 国产夫妻精品视频| 在线亚洲欧美专区二区| 91精品黄色片免费大全| 国产视频一区二区在线观看| 亚洲欧洲精品成人久久奇米网| 五月婷婷激情综合| 精品在线免费观看| 91啪在线观看| 69精品人人人人| 欧美国产日产图区|