Mobile Login, Register and Update User Profile Using ActionScript 3.0
Submitted by rinvizle on Thursday, February 9, 2017 - 19:01.
In this tutorial, we will teach you on how to create a Login, Register and Update User Profile Using Action Script 3.0. This project is very known in mobile applications. This application creates a Login form and a registration form for every user, each user can access and update their profile. Every data that the user fill in it will automatically save to the database.
And the Function for each variable to query in the database.
Register Event For creating a string command to display if the registration successfully registered or failed.
Update UI Form for updating the user profile.
And for the query function for updating the user profile form the given value.
Login query function.
Hope that you learn in this tutorial. And for more updates and programming tutorials don't hesitate to ask and we will answer your questions and suggestions. Don't forget to LIKE & SHARE this website.
Sample Code
Registration UI Form and Function.- package views
- {
- import commons.Manager;
- import commons.ScreenManager;
- import commons.TextManager;
- import events.RegisterEvent;
- import flash.events.MouseEvent;
- import flash.text.TextFormatAlign;
- import flashx.textLayout.container.ScrollPolicy;
- import flashx.textLayout.formats.VerticalAlign;
- import models.vo.User;
- import mx.controls.Spacer;
- import mx.graphics.SolidColor;
- import org.osmf.layout.HorizontalAlign;
- import spark.components.Button;
- import spark.components.Group;
- import spark.components.Image;
- import spark.components.Label;
- import spark.components.Scroller;
- import spark.components.TextInput;
- import spark.components.VGroup;
- import spark.events.TextOperationEvent;
- import spark.primitives.Rect;
- public class RegisterView extends Group
- {
- private const SCALE:Number = ScreenManager.scale;
- private const LABEL_FONT_SIZE:Number = 30 * SCALE;
- private var usernameInput:TextInput;
- private var passwordInput:TextInput;
- private var firstnameInput:TextInput;
- private var middlenameInput:TextInput;
- private var lastnameInput:TextInput;
- private var messageLabel:Label;
- private var submitButton:Button;
- public function RegisterView()
- {
- this.percentWidth = 100;
- this.percentHeight = 100;
- var rect:Rect = new Rect();
- rect.percentWidth = 100;
- rect.percentHeight = 100;
- rect.fill = new SolidColor(0x0090c2);
- addElement(rect);
- var main:VGroup = new VGroup();
- main.paddingTop = 20 * SCALE;
- main.paddingBottom = 70 * SCALE;
- main.percentWidth = 100;
- main.percentHeight = 100;
- main.horizontalAlign = HorizontalAlign.CENTER;
- var scroller:Scroller = new Scroller();
- scroller.percentWidth = 100;
- scroller.percentHeight = 100;
- scroller.viewport = main;
- scroller.setStyle("horizontalScrollPolicy",ScrollPolicy.OFF);
- addElement(scroller);
- var content:VGroup = new VGroup();
- content.percentHeight = 100;
- content.horizontalAlign = HorizontalAlign.CENTER;
- main.addElement(content);
- var logoContainer:VGroup = new VGroup();
- logoContainer.horizontalAlign = HorizontalAlign.CENTER;
- content.addElement(logoContainer);
- var logo:Image = new Image();
- logo.source = LOGO;
- logo.scaleX = logo.scaleY = SCALE;
- logoContainer.addElement(logo);
- var gap:Spacer = new Spacer();
- gap.height = 20 * SCALE;
- content.addElement(gap);
- var inputContainer:VGroup = new VGroup();
- inputContainer.percentWidth = 100;
- content.addElement(inputContainer);
- var accountInputContainer:VGroup = new VGroup();
- accountInputContainer.percentWidth = 100;
- inputContainer.addElement(accountInputContainer);
- const INPUT_WIDTH:Number = 600 * SCALE;
- const SPACER_HEIGHT:Number = 10 * SCALE;
- var usernameLabel:Label = new Label();
- usernameLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- usernameLabel.setStyle("color", 0x000000);
- usernameLabel.setStyle("fontFamily", "Arial");
- usernameLabel.text = "Username";
- inputContainer.addElement(usernameLabel);
- usernameInput = new TextInput();
- usernameInput.setStyle("fontSize", LABEL_FONT_SIZE);
- usernameInput.width = INPUT_WIDTH;
- usernameInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(usernameInput);
- var usernameSpacer:Spacer = new Spacer();
- usernameSpacer.height = SPACER_HEIGHT;
- inputContainer.addElement(usernameSpacer);
- var passwordLabel:Label = new Label();
- passwordLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- passwordLabel.setStyle("color", 0x000000);
- passwordLabel.setStyle("fontFamily", "Arial");
- passwordLabel.text = "Password";
- inputContainer.addElement(passwordLabel);
- passwordInput = new TextInput();
- passwordInput.setStyle("fontSize", LABEL_FONT_SIZE);
- passwordInput.width = INPUT_WIDTH;
- passwordInput.displayAsPassword = true;
- passwordInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(passwordInput);
- var passwordSpacer:Spacer = new Spacer();
- passwordSpacer.height = SPACER_HEIGHT;
- inputContainer.addElement(passwordSpacer);
- var firstnameLabel:Label = new Label();
- firstnameLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- firstnameLabel.setStyle("color", 0x000000);
- firstnameLabel.setStyle("fontFamily", "Arial");
- firstnameLabel.text = "Firstname";
- inputContainer.addElement(firstnameLabel);
- firstnameInput = new TextInput();
- firstnameInput.setStyle("fontSize", LABEL_FONT_SIZE);
- firstnameInput.width = INPUT_WIDTH;
- firstnameInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(firstnameInput);
- var firstnameSpacer:Spacer = new Spacer();
- firstnameSpacer.height = SPACER_HEIGHT;
- inputContainer.addElement(firstnameSpacer);
- var middlenameLabel:Label = new Label();
- middlenameLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- middlenameLabel.setStyle("color", 0x000000);
- middlenameLabel.setStyle("fontFamily", "Arial");
- middlenameLabel.text = "Middlename";
- inputContainer.addElement(middlenameLabel);
- middlenameInput = new TextInput();
- middlenameInput.setStyle("fontSize", LABEL_FONT_SIZE);
- middlenameInput.width = INPUT_WIDTH;
- middlenameInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(middlenameInput);
- var middlenameSpacer:Spacer = new Spacer();
- middlenameSpacer.height = SPACER_HEIGHT;
- inputContainer.addElement(middlenameSpacer);
- var lastnameLabel:Label = new Label();
- lastnameLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- lastnameLabel.setStyle("color", 0x000000);
- lastnameLabel.setStyle("fontFamily", "Arial");
- lastnameLabel.text = "Lastname";
- inputContainer.addElement(lastnameLabel);
- lastnameInput = new TextInput();
- lastnameInput.setStyle("fontSize", LABEL_FONT_SIZE);
- lastnameInput.width = INPUT_WIDTH;
- lastnameInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(lastnameInput);
- var messageContainer:VGroup = new VGroup();
- messageContainer.percentHeight = 100;
- messageContainer.width = INPUT_WIDTH;
- messageContainer.horizontalAlign = HorizontalAlign.CENTER;
- messageContainer.verticalAlign = VerticalAlign.MIDDLE;
- content.addElement(messageContainer);
- messageLabel = new Label();
- messageLabel.percentWidth = 90;
- messageLabel.setStyle("fontSize", 28 * SCALE);
- messageLabel.setStyle("color", 0xFF0000);
- messageLabel.setStyle("textAlign", TextFormatAlign.CENTER);
- messageLabel.setStyle("fontFamily", "Arial");
- messageContainer.addElement(messageLabel);
- var buttonsContainer:VGroup = new VGroup();
- buttonsContainer.percentWidth = 80;
- content.addElement(buttonsContainer);
- submitButton = new Button();
- submitButton.setStyle("fontSize", LABEL_FONT_SIZE);
- submitButton.label = "Submit";
- submitButton.enabled = false;
- submitButton.percentWidth = 100;
- submitButton.height = 86 * SCALE;
- submitButton.addEventListener(MouseEvent.CLICK, onRegister);
- buttonsContainer.addElement(submitButton);
- var buttonsSpacer:Spacer = new Spacer();
- buttonsSpacer.height = 20 * SCALE;
- buttonsContainer.addElement(buttonsSpacer);
- var backButton:Button = new Button();
- backButton.setStyle("fontSize", LABEL_FONT_SIZE);
- backButton.label = "Back to Login";
- backButton.percentWidth = 100;
- backButton.height = 86 * SCALE;
- backButton.addEventListener(MouseEvent.CLICK, onBack);
- buttonsContainer.addElement(backButton);
- }
- }
- }
- public function set message(value:String):void
- {
- messageLabel.text = value;
- }
- private function onDataChange(event:TextOperationEvent):void
- {
- if (!Manager.isTextEmpty(usernameInput.text) && !Manager.isTextEmpty(passwordInput.text) && !Manager.isTextEmpty(firstnameInput.text) && !Manager.isTextEmpty(lastnameInput.text))
- {
- submitButton.enabled = true;
- }
- else
- {
- submitButton.enabled = false;
- }
- }
- private function onRegister(event:MouseEvent):void
- {
- var user:User = new User();
- user.username = usernameInput.text;
- user.password = passwordInput.text;
- user.firstname = firstnameInput.text;
- user.middlename = middlenameInput.text;
- user.lastname = lastnameInput.text;
- dispatchEvent(new RegisterEvent(RegisterEvent.PROCESS_REGISTRATION,user));
- user = null;
- }
- private function onBack(event:MouseEvent):void
- {
- dispatchEvent(new RegisterEvent(RegisterEvent.BACK_TO_LOGIN));
- }
- package events
- {
- import flash.events.Event;
- import models.vo.User;
- public class RegisterEvent extends Event
- {
- public static const PROCESS_REGISTRATION:String = 'processRegistration';
- public static const BACK_TO_LOGIN:String = 'backToLogin';
- public static const SUCCESS:String = 'success';
- public static const FAILED:String = 'failedRegistration';
- private var _user:User;
- private var _message:String;
- public function RegisterEvent(type:String, userObj:User=null, message:String=null)
- {
- super(type);
- _user = userObj;
- _message = message;
- }
- public function get user():User
- {
- return _user;
- }
- public function get message():String
- {
- return _message;
- }
- override public function clone():Event
- {
- return new RegisterEvent(type, _user, _message);
- }
- }
- }
- package views
- {
- import commons.Manager;
- import commons.ScreenManager;
- import events.UserEvent;
- import flash.events.MouseEvent;
- import flash.text.TextFormatAlign;
- import flash.text.engine.FontWeight;
- import flashx.textLayout.container.ScrollPolicy;
- import flashx.textLayout.formats.VerticalAlign;
- import models.vo.User;
- import mx.controls.Spacer;
- import org.osmf.layout.HorizontalAlign;
- import spark.components.Button;
- import spark.components.HGroup;
- import spark.components.Label;
- import spark.components.Scroller;
- import spark.components.TextInput;
- import spark.components.VGroup;
- import spark.components.View;
- import spark.events.TextOperationEvent;
- public class SettingsView extends View
- {
- [Embed(source="images/home.png")]
- private var HOME:Class;
- [Embed(source="images/floppy.png")]
- private var SAVE:Class;
- protected var mainContent:VGroup;
- protected const SCALE:Number = ScreenManager.scale;
- private const LABEL_FONT_SIZE:Number = 32 * SCALE;
- private var titleLabel:Label;
- private var mainMenuButton:Button;
- private var addClass:Button;
- private var usernameInput:TextInput;
- private var passwordInput:TextInput;
- private var firstnameInput:TextInput;
- private var middlenameInput:TextInput;
- private var lastnameInput:TextInput;
- private var messageLabel:Label;
- private var submitButton:Button;
- private var _user:User;
- public function SettingsView()
- {
- mainMenuButton = new Button();
- mainMenuButton.width = headerHeight;
- mainMenuButton.height = headerHeight;
- mainMenuButton.label = "Main";
- mainMenuButton.setStyle("fontSize", 32 * SCALE);
- mainMenuButton.setStyle("icon", HOME);
- mainMenuButton.addEventListener(MouseEvent.CLICK,onMainMenu);
- navigationContent.push(mainMenuButton);
- titleLabel = new Label();
- titleLabel.percentWidth = 100;
- titleLabel.setStyle("fontSize", 32 * SCALE);
- titleLabel.setStyle("color", 0xFFFFFF);
- titleLabel.setStyle("textAlign", TextFormatAlign.CENTER);
- titleLabel.setStyle("fontFamily", "Arial");
- titleLabel.setStyle("fontWeight", FontWeight.BOLD);
- titleLabel.text = "SETTINGS";
- var myHGrp:HGroup = new HGroup();
- myHGrp.verticalAlign = VerticalAlign.MIDDLE;
- myHGrp.horizontalAlign = HorizontalAlign.RIGHT;
- myHGrp.percentWidth = 100;
- myHGrp.height = headerHeight;
- myHGrp.maxHeight = headerHeight;
- myHGrp.gap = 20 * SCALE;
- myHGrp.addElement(titleLabel);
- titleContent.push(myHGrp);
- submitButton = new Button();
- submitButton.setStyle("fontSize", LABEL_FONT_SIZE);
- submitButton.setStyle("icon", SAVE);
- submitButton.label = "Update";
- submitButton.width = headerHeight;
- submitButton.height = headerHeight;
- submitButton.addEventListener(MouseEvent.CLICK, onUpdate);
- actionContent.push(submitButton);
- mainContent = new VGroup();
- mainContent.paddingTop = 50 * SCALE;
- mainContent.percentWidth = 100;
- mainContent.percentHeight = 100;
- mainContent.horizontalAlign = HorizontalAlign.CENTER;
- mainContent.gap = 0;
- var scroller:Scroller = new Scroller();
- scroller.percentWidth = 100;
- scroller.percentHeight = 100;
- scroller.viewport = mainContent;
- scroller.setStyle("horizontalScrollPolicy",ScrollPolicy.OFF);
- addElement(scroller);
- var inputContainer:VGroup = new VGroup();
- inputContainer.percentWidth = 100;
- inputContainer.horizontalAlign = HorizontalAlign.CENTER;
- mainContent.addElement(inputContainer);
- const INPUT_WIDTH:Number = 600 * SCALE;
- const SPACER_HEIGHT:Number = 10 * SCALE;
- var usernameLabel:Label = new Label();
- usernameLabel.width = INPUT_WIDTH;
- usernameLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- usernameLabel.setStyle("color", 0x000000);
- usernameLabel.setStyle("fontFamily", "Arial");
- usernameLabel.text = "Username";
- inputContainer.addElement(usernameLabel);
- usernameInput = new TextInput();
- usernameInput.setStyle("fontSize", LABEL_FONT_SIZE);
- usernameInput.width = INPUT_WIDTH;
- usernameInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(usernameInput);
- var usernameSpacer:Spacer = new Spacer();
- usernameSpacer.height = SPACER_HEIGHT;
- inputContainer.addElement(usernameSpacer);
- var passwordLabel:Label = new Label();
- passwordLabel.width = INPUT_WIDTH;
- passwordLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- passwordLabel.setStyle("color", 0x000000);
- passwordLabel.setStyle("fontFamily", "Arial");
- passwordLabel.text = "Password";
- inputContainer.addElement(passwordLabel);
- passwordInput = new TextInput();
- passwordInput.setStyle("fontSize", LABEL_FONT_SIZE);
- passwordInput.width = INPUT_WIDTH;
- passwordInput.displayAsPassword = true;
- passwordInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(passwordInput);
- var passwordSpacer:Spacer = new Spacer();
- passwordSpacer.height = SPACER_HEIGHT;
- inputContainer.addElement(passwordSpacer);
- var firstnameLabel:Label = new Label();
- firstnameLabel.width = INPUT_WIDTH;
- firstnameLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- firstnameLabel.setStyle("color", 0x000000);
- firstnameLabel.setStyle("fontFamily", "Arial");
- firstnameLabel.text = "Firstname";
- inputContainer.addElement(firstnameLabel);
- firstnameInput = new TextInput();
- firstnameInput.setStyle("fontSize", LABEL_FONT_SIZE);
- firstnameInput.width = INPUT_WIDTH;
- firstnameInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(firstnameInput);
- var firstnameSpacer:Spacer = new Spacer();
- firstnameSpacer.height = SPACER_HEIGHT;
- inputContainer.addElement(firstnameSpacer);
- var middlenameLabel:Label = new Label();
- middlenameLabel.width = INPUT_WIDTH;
- middlenameLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- middlenameLabel.setStyle("color", 0x000000);
- middlenameLabel.setStyle("fontFamily", "Arial");
- middlenameLabel.text = "Middlename";
- inputContainer.addElement(middlenameLabel);
- middlenameInput = new TextInput();
- middlenameInput.setStyle("fontSize", LABEL_FONT_SIZE);
- middlenameInput.width = INPUT_WIDTH;
- middlenameInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(middlenameInput);
- var middlenameSpacer:Spacer = new Spacer();
- middlenameSpacer.height = SPACER_HEIGHT;
- inputContainer.addElement(middlenameSpacer);
- var lastnameLabel:Label = new Label();
- lastnameLabel.width = INPUT_WIDTH;
- lastnameLabel.setStyle("fontSize", LABEL_FONT_SIZE);
- lastnameLabel.setStyle("color", 0x000000);
- lastnameLabel.setStyle("fontFamily", "Arial");
- lastnameLabel.text = "Lastname";
- inputContainer.addElement(lastnameLabel);
- lastnameInput = new TextInput();
- lastnameInput.setStyle("fontSize", LABEL_FONT_SIZE);
- lastnameInput.width = INPUT_WIDTH;
- lastnameInput.addEventListener(TextOperationEvent.CHANGE, onDataChange);
- inputContainer.addElement(lastnameInput);
- var messageContainer:VGroup = new VGroup();
- messageContainer.paddingTop = 25 * SCALE;
- messageContainer.paddingBottom = 25 * SCALE;
- messageContainer.percentHeight = 100;
- messageContainer.width = INPUT_WIDTH;
- messageContainer.horizontalAlign = HorizontalAlign.CENTER;
- messageContainer.verticalAlign = VerticalAlign.MIDDLE;
- mainContent.addElement(messageContainer);
- messageLabel = new Label();
- messageLabel.percentWidth = 90;
- messageLabel.setStyle("fontSize", 28 * SCALE);
- messageLabel.setStyle("color", 0xFFFFFF);
- messageLabel.setStyle("textAlign", TextFormatAlign.CENTER);
- messageLabel.setStyle("fontFamily", "Arial");
- messageContainer.addElement(messageLabel);
- }
- }
- }
- public static function get headerHeight():Number
- {
- return 120 * ScreenManager.scale;
- }
- private function onMainMenu(event:MouseEvent):void
- {
- navigator.popToFirstView();
- }
- public function set user(value:User):void
- {
- _user = value;
- usernameInput.text = _user.username;
- passwordInput.text = _user.password;
- firstnameInput.text = _user.firstname;
- middlenameInput.text = _user.middlename;
- lastnameInput.text = _user.lastname;
- }
- public function set message(value:String):void
- {
- messageLabel.text = value;
- }
- private function onDataChange(event:TextOperationEvent):void
- {
- if (!Manager.isTextEmpty(usernameInput.text) && !Manager.isTextEmpty(passwordInput.text) && !Manager.isTextEmpty(firstnameInput.text) && !Manager.isTextEmpty(lastnameInput.text))
- {
- submitButton.enabled = true;
- }
- else
- {
- submitButton.enabled = false;
- }
- }
- private function onUpdate(event:MouseEvent):void
- {
- var user:User = new User();
- user.id = _user.id;
- user.username = usernameInput.text;
- user.password = passwordInput.text;
- user.firstname = firstnameInput.text;
- user.middlename = middlenameInput.text;
- user.lastname = lastnameInput.text;
- dispatchEvent(new UserEvent(UserEvent.PROCESS_UPDATE,user));
- user = null;
- }
- public function set message(value:String):void
- {
- if(value === "Registration Successful! You can now login")
- {
- messageLabel.setStyle("color", 0xFFFFFF);
- }
- else
- {
- messageLabel.setStyle("color", 0xFF0000);
- }
- messageLabel.text = value;
- }
- private function checkUsernameCache():void
- {
- var loginSO:SharedObject = SharedObject.getLocal(Constants.LOGIN_SO);
- if (loginSO.data.hasOwnProperty("username"))
- {
- if (!Manager.isTextEmpty(loginSO.data.username))
- {
- usernameInput.text = loginSO.data.username;
- return;
- }
- }
- usernameInput.text = defaultUsernameText;
- }
- private function onDataChange(event:TextOperationEvent):void
- {
- if (!Manager.isTextEmpty(usernameInput.text, defaultUsernameText) && !Manager.isTextEmpty(passwordInput.text))
- {
- loginButton.enabled = true;
- }
- else
- {
- loginButton.enabled = false;
- }
- }
- private function onUsernameFocus(event:FocusEvent):void
- {
- switch (event.type)
- {
- case FocusEvent.FOCUS_IN:
- if (usernameInput.text == defaultUsernameText)
- {
- usernameInput.text = "";
- }
- break;
- case FocusEvent.FOCUS_OUT:
- if (Manager.isTextEmpty(usernameInput.text))
- {
- usernameInput.text = defaultUsernameText;
- }
- break;
- }
- }
- private function onLogin(event:MouseEvent):void
- {
- if (messageLabel.text != "")
- {
- message = "";
- }
- dispatchEvent(new LoginEvent(LoginEvent.LOGIN, usernameInput.text, passwordInput.text));
- }
- private function onRegisterAccount(event:MouseEvent):void
- {
- dispatchEvent(new LoginEvent(LoginEvent.REGISTER_ACCOUNT));
- }
- public function cleanUp():void
- {
- removeAllElements();
- logo.bitmapData.dispose();
- logo = null;
- usernameInput = null;
- passwordInput = null;
- messageLabel = null;
- loginButton = null;
- defaultUsernameText = null;
- }
Add new comment
- 131 views