hi i created a storage class that i was using and it works perfectly but i dont 
know how to use it to get data from a cfc through remote object call. here is 
my code it works with username and password but when it comes to geting the 
email address associated with the username and password from the db i dont know 
how to do that and thats my biggest problem.

"mainApp.mxml"

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; layout="absolute" 
xmlns:view="components.*">
        <mx:states>
                <mx:State name="Log Out">
                        <mx:SetProperty target="{label1}" name="text" 
value="Log Out"/>
                </mx:State>
        </mx:states>
        <mx:Script>
                <![CDATA[
                        import components.*;
                        //Flash Classes
                        import flash.events.Event;
            import flash.events.MouseEvent;
            
            //Flex Classes
                        import mx.containers.TitleWindow;
                        import mx.controls.Alert;
            import mx.events.CloseEvent;            
            import mx.managers.PopUpManager;
            import mx.core.IFlexDisplayObject;
            import mx.utils.ObjectUtil;
            
            //static class
            import classes.UserInfo;
                                
            public var loggedin:Boolean = false;
                public var pop:Login;                   
                        
            private function showLogin():void
            {
                pop = Login(PopUpManager.createPopUp(Application.application as 
DisplayObject,Login,true));
                pop.showCloseButton =true;
                PopUpManager.centerPopUp(pop);                  
                pop.addEventListener("close",removeMe);
                pop["cancelButton"].addEventListener("click", removeMe);
                pop.addEventListener( "loginSuccessful", handleLoginSucess);
                //UserInfo.Email = pop.authManager.email; 
            }
            
            private function removeMe(event:Event):void {
                PopUpManager.removePopUp(pop);
            }
            
            private function handleLoginSucess(event:Event):void{
                viewstack1.selectedChild = admin;
                lbl_intro.text = "Welcome " +pop.username_txt.text;
                removeMe(event);                
                currentState = 'Log Out';
                UserInfo.UserName = pop.username_txt.text;
                UserInfo.Email = pop.authManager.email;
                
//mx.controls.Alert.show(mx.utils.ObjectUtil.toString(pop.authManager));
                //trace (UserInfo.Email);
            }  
            
                                
                ]]>
        </mx:Script>
        
        <mx:Label x="0" y="0" text="Sign In" id="label1" buttonMode="true" 
useHandCursor="true" mouseChildren="false" click="showLogin()"/>
        <mx:ViewStack x="0" y="26" id="viewstack1" width="100%" height="100%">
                <view:Home id="home"/>
                <view:Admin id="admin"/>
        </mx:ViewStack> 
        <mx:Label x="700" y="0" id="lbl_intro"/>
</mx:Application>

"login.mxml"

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"; layout="absolute" 
title="Login Form">
        <mx:Metadata>
       [Event(name="loginSuccessful", type="flash.events.Event")] 
    </mx:Metadata>
    
    <mx:Script>
        <![CDATA[
                import mx.collections.ArrayCollection;
                import mx.rpc.events.ResultEvent;
            import mx.rpc.events.FaultEvent;
            import mx.utils.ObjectUtil;
            import mx.controls.Alert;
            import mx.events.ValidationResultEvent;

            import mx.core.Application;
            import classes.UserInfo;
            
            private function isValid():Boolean
            {
                var emailValidResult:ValidationResultEvent = 
this.emailValidate.validate(this.username_txt.text);
                var pswdValidResult:ValidationResultEvent = 
this.pswdValidate.validate(this.password_txt.text);
                
                if (emailValidResult.type==ValidationResultEvent.VALID 
                                && 
pswdValidResult.type==ValidationResultEvent.VALID) 
                {
                        return true;    
                }
                else
                {
                        return false;   
                }
                
            }
            
            private function authenticateUser():void
            {
                                if( isValid() )
                        {
                        authManager.loginUser( this.username_txt.text, 
this.password_txt.text/* , userCredentials  */);                 
                                        UserInfo.isLogged = true;  
                }
            } 
            
            private function errorMessage(msg:String):void
            {
                //Alert.show( ObjectUtil.toString(event.message) );
                this.errorMsg.text = msg;
                this.errorMsg.height = 15;
                this.errorMsg.visible = true;
            }    
   
            private function serverFault(event:FaultEvent):void
            {
                errorMessage(event.message['message']);
            }   
            
                  
            //[Bindable]
            //private var profileAr:ArrayCollection = new ArrayCollection;
            
            private function login_result(event:ResultEvent):void
            {
                // login successful, remember the user.
                if( event.result == "true" || event.result == "TRUE" || 
event.result == "1" || event.result == 1 )
                {                                                               
                                    //profileAr = new 
ArrayCollection((event.result as ArrayCollection).source);
                                    /* 
Application.application.authenticateUser(userCredentials); */
                                    this.dispatchEvent( new 
Event('loginSuccessful') );
                }
                else
                {
                        // login didn't work. show message
                        errorMessage("Login unsuccessful");     
                }
            }
        ]]>
    </mx:Script>
    
    <mx:RemoteObject 
        id="authManager" 
        destination="ColdFusion" 
        source="login_example.cfc.login" 
        showBusyCursor="true">
       <mx:method name="loginUser" result="login_result(event)" 
fault="serverFault(event)" />
    </mx:RemoteObject> 
    
    <mx:StringValidator 
        id="emailValidate" 
        source="{this.username_txt}" 
        property="text" 
        required="true" />
    <mx:StringValidator 
        id="pswdValidate" 
        source="{this.password_txt}" 
        property="text" 
        required="true" />
        
        <mx:Form x="0" y="0">
                <mx:FormItem label="User Name:">
                        <mx:TextInput id="username_txt"/>
                </mx:FormItem>
                <mx:FormItem label="Password:">
                        <mx:TextInput id="password_txt"/>
                </mx:FormItem>
        </mx:Form>
        <mx:Text x="0" y="90" id="errorMsg" visible="true" color="red" 
width="100%" height="0" />
        <mx:ControlBar>
                <mx:HBox width="100%">          
                        <mx:Button label="Login" id="okButton" 
click="authenticateUser();"/>
                        <mx:Spacer width="100%"/>
                        <mx:Button label="Cancel" id="cancelButton"/>
                </mx:HBox>
        </mx:ControlBar>        
</mx:TitleWindow>

"login.cfc"

<cfcomponent>
                <cffunction name="loginUser" access="remote" 
returntype="boolean">
                    <cfargument name="username" type="string" required="true"/>
                    <cfargument name="password" type="string" required="true"/>

                    <cfquery name="checkAuthentication" 
datasource="authentication">
                          SELECT *
                          FROM profile
                          where username = <cfqueryparam 
cfsqltype="cf_sql_varchar" value="#arguments.username#">
                                and Password = <cfqueryparam 
cfsqltype="cf_sql_varchar" value="#arguments.password#">
                    </cfquery>                  

                    <cfif checkAuthentication.recordCount EQ 1>
                           <cfreturn true/>
                           <!---<cfreturn checkAuthentication>--->
                    <cfelse>
                           <cfreturn false/>
                    </cfif>
           </cffunction>

</cfcomponent>

"storage class(UserInfo.as)"

package classes
{
        
        public class UserInfo
        {
                private static var _UserName:String = "";
                private static var _Password:String = "";
                private static var _Email:String = "";
                private static var _isLogged:Boolean = false;

                public static function get UserName():String
                {
                        return UserInfo._UserName;
                }
                public static function set UserName(param:String):void
                {
                        UserInfo._UserName = param;
                }
                
                public static function get Password():String
                {
                        return UserInfo._Password;
                }
                public static function set Password(param:String):void
                {
                        UserInfo._Password = param;
                }
                
                public static function get Email():String
                {
                        return UserInfo._Email;
                }
                public static function set Email(param:String):void
                {
                        UserInfo._Email = param;
                }               
                
                public static function get isLogged():Boolean
                {
                        return UserInfo._isLogged;
                }
                public static function set isLogged(param:Boolean):void
                {
                        UserInfo._isLogged = param;
                }                       
        }
}


Reply via email to