📄 user.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 + -