⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 user.as

📁 flex 实现的一个showcase 喜欢flex的朋友可以
💻 AS
字号:
package com.flexShowcase.data {
	
	
	//////////////////////////////////////////////////
	//import
	
	import com.flexShowcase.events.UserEvent;
	
	import flash.events.EventDispatcher;
	
	import mx.collections.ArrayCollection;
	
	
	//////////////////////////////////////////////////
	//class
	
	public class User extends EventDispatcher {
		
		
		//////////////////////////////////////////////////
		//private static variables
		
		private static var instance:User;
		
		
		//////////////////////////////////////////////////
		//getter/setter variables
		
		private var _projects:ArrayCollection;
		
		
		//////////////////////////////////////////////////
		//public variables
		
		[Bindable] public var id:uint;
		[Bindable] public var username:String; //usernames on flex.org are based on user email addresses
		[Bindable] public var email:String;
		[Bindable] public var firstName:String;
		[Bindable] public var lastName:String;
		[Bindable] public var created:Date; //the date the user was first stored into drupal
		[Bindable] public var projectsLoaded:Boolean;
		[Bindable] public var hasProjects:Boolean;
		[Bindable] public var loggedIn:Boolean;
		
		
		//////////////////////////////////////////////////
		//constructor
		
		public function User():void {
		}
		
		
		//////////////////////////////////////////////////
		//public static functions
		
		public static function getInstance():User {
			checkInstance();
			
			return instance;
		}
		public static function setInstance(user:User):void {
			checkInstance();
			
			instance.id = user.id;
			instance.username = user.username;
			instance.email = user.email;
			instance.firstName = user.firstName;
			instance.lastName = user.lastName;
			instance.created = user.created;
			instance.projects = user.projects;
			instance.projectsLoaded = user.projectsLoaded;
			instance.hasProjects = user.hasProjects;
			instance.loggedIn = user.loggedIn;
			
			instance.dispatchChangeEvent();
		}
		
		
		//////////////////////////////////////////////////
		//private static functions
		
		private static function checkInstance():void {
			if (instance == null) {
				instance = new User();
			}
		}
		
		
		//////////////////////////////////////////////////
		//getter/setter functions
		
		[Bindable]
		public function set projects(value:ArrayCollection):void {
			_projects = value;
			
			projectsHandler();
		}
		public function get projects():ArrayCollection {
			return _projects;
		}
		
		private function projectsHandler():void {
			projectsLoaded = true;
			
			if (projects != null) {
				if (projects.length > 0) {
					hasProjects = true;
				}
			} else {
				hasProjects = false;
			}
			
			dispatchProjectsLoadedEvent();
		}
		
		//////////////////////////////////////////////////
		//dispatch functions
		
		private function dispatchChangeEvent():void {
			var userEvent:UserEvent = new UserEvent(UserEvent.CHANGE);
			dispatchEvent(userEvent);
		}
		private function dispatchProjectsLoadedEvent():void {
			var userEvent:UserEvent = new UserEvent(UserEvent.PROJECTS_LOADED);
			dispatchEvent(userEvent);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -