U need to make two different handlers..
1) for the login Request .. coming from the login form...

2) for the result coming back from the http service..

U have declared both with the same name..

First of all change that..

U cant directly access the loginUser and pass..

either u have to call _start.loginUser.text...

or as per ur code.. ( since you are passing the username and password
through the loginEvent)

inside the
loginRequestHandler(event:LoginEvent):void
{
     trace( event.username);
     trace(event.password);
}

On Fri, Mar 20, 2009 at 4:24 AM, 0! <0na...@gmail.com> wrote:

>
> hello.
> i have a simple flex application which should display two states. one
> is called '_start' and other is 'main'.
>
> basically what i want to do is to display a login screen (username and
> password) in the '_start' state and after entering details to check
> for that username in mysql database and if data matches display the
> 'main' state.
> in both states i 'include' two different mxml components called
> 'login_form.mxml' and 'main.mxml'.
>
> this is my code:
>
> #######################################################################
> #######################
> ## MAIN APPLICATION ##
> #######################
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application
>        xmlns:mx="http://www.adobe.com/2006/mxml";
>        xmlns:comps="components.*"
>        layout="vertical" backgroundColor="#FFFFFF" horizontalAlign="center"
>        paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5"
>        currentState="_start">
>
>        <mx:states>
>        <mx:State name="_start">
>                <mx:AddChild position="lastChild">
>                        <comps:loginForm id="_start" width="100%"
> height="100%"
> horizontalAlign="center" login="loginHandler()"/>
>                </mx:AddChild>
>        </mx:State>
>        <mx:State name="main">
>                <mx:AddChild position="lastChild">
>                        <comps:main id="main" width="100%" height="100%"
> horizontalAlign="center"/>
>                </mx:AddChild>
>        </mx:State>
>        </mx:states>
>
>        <mx:Script>
>                <![CDATA[
>                import mx.rpc.events.ResultEvent;
>                import mx.controls.Alert;
>
>                private function loginHandler(event:ResultEvent):void{
>
>                        if (event.result.loginsuccess == "yes"){
>                                currentState = "main";
>                        }
>
>                        if (event.result.loginsuccess == "no"){
>                                Alert.show("Wrong information!", "ERROR!");
>                        }
>                }
>
>                ]]>
>        </mx:Script>
>
>        <mx:HTTPService
>                id="login_user"
>                result="loginHandler(event)"
>                method="POST"
>                url="php/login.php"
>                useProxy="false">
>        <mx:request xmlns="">
>           <username>{loginUser.text}</username>
>           <password>{loginPass.text}</password>
>        </mx:request>
>        </mx:HTTPService>
>
> </mx:Application>
>
>
> ###########################
> ## login_form COMPONENT ##
> ###########################
>
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml";
>        verticalAlign="top" horizontalAlign="center"
>        paddingBottom="10" paddingLeft="10" paddingRight="10"
> paddingTop="10"
>        layout="absolute" width="310" height="150"
>        status="eDnevnik v0.1.1" roundedBottomCorners="true"
>        title="LOGIN FORM">
>
>        <mx:Metadata>
>                [Event(name="login", type="events.LoginEvent")]
>        </mx:Metadata>
>
>        <mx:Script>
>                <![CDATA[
>                        import events.LoginEvent;
>
>                        private function clickHandler(event:Event):void{
>                                var e:LoginEvent = new LoginEvent("login",
> loginUser.text,
> loginPass.text);
>                                dispatchEvent(e);
>                        }
>                ]]>
>        </mx:Script>
>
>        <mx:Label x="10" y="12" text="user name:/>
>        <mx:TextInput x="104" y="10" id="loginUser"/>
>        <mx:Label x="10" y="42" text="password:"/>
>        <mx:TextInput x="104" y="40" id="loginPass"
> displayAsPassword="true"/
> >
>        <mx:ControlBar>
>                <mx:Button id="loginButton" label="SUBMIT"
> click="clickHandler
> (event)"/>
>        </mx:ControlBar>
> </mx:Panel>
>
>
> ################################
> ## LOGIN EVENT ACTIONSCRIPT ##
> ################################
>
> package events
> {
>        import flash.events.Event;
>
>        public class LoginEvent extends Event
>        {
>
>                public var username:String;
>                public var password:String;
>
>                public function LoginEvent(type:String, username:String,
> password:String)
>                {
>                        super(type);
>                        this.username = username;
>                        this.password = password;
>                }
>
>        }
> }
> #######################################################################
>
> for now my user/pass checking works well. also the login_form
> component dispatches the event (i can see it in my debugger).
>
> i am confused because (if i am right) in my login_form component i am
> declaring an event of name 'login' and type 'event', right? and in my
> main application file, when i use that same component i am calling
> login as loginHnadler() which is of type ResultEvent. i am getting
> this right for now? so, my flex builder first tells me this error in
> my main application file:
>
> 1067: Implicit coercion of a value of type events:LoginEvent to an
> unrelated type mx.rpc.events:ResultEvent.
> which refers to this line:
> <comps:loginForm id="_start" width="100%" height="100%"
> horizontalAlign="center" login="loginHandler(event)"/>
>
> and after that i get 2 more errors:
> 1120: Access of undefined property loginUser
> 1120: Access of undefined property /loginPass
> on these lines:
> <username>{loginUser.text}</username>
> <password>{loginPass.text}</password>
>
> what am i doing wrong here? how to handle this 'events' problem?
>
> thanks for helping!
>
> >
>


-- 
Regards,
Ganaraj P R

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Flex 
India Community" group.
To post to this group, send email to flex_india@googlegroups.com
To unsubscribe from this group, send email to 
flex_india+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/flex_india?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to