Link to home
Start Free TrialLog in
Avatar of prostang
prostangFlag for United States of America

asked on

listener not working past first frame

I have a movie that is working with the sole exception of a password field.  The code works fine if you just enter the first frame that the password field is created.  The movie is set up where the user can enter at multiple points.  When that happens, the password field doesn't work.  I think that it is the listener, but can't figure out how to fix it.  Here is the code I have on the frames that the password field exists:

//form = new Object();
//lo = new Object();
windowListener = new Object();
password_listener = new Object();


form.focusOut = function(eventObject){
     var password:String = eventObject.target.text;
     if (mypassword.text == "popsicle" || mypassword.text == "cfd901" || mypassword.text == "hgi367" || mypassword.text == "yec820" || mypassword.text == "qmn274" || mypassword.text == "luv580" || mypassword.text == "wdf289" || mypassword.text == "hvl490" || mypassword.text == "iyb954" || mypassword.text == "mnr431" || mypassword.text == "toy671" || mypassword.text == "red396" || mypassword.text == "ams682" || mypassword.text == "web219" || mypassword.text == "agh413" || mypassword.text == "mwn765" )
     {            //if the password is ok
          trace("Passsword '" + password + "' is ok");
              _global.greenlight = "OK";
              trace(greenlight);
       }
     else
     {            // if the password is wrong
                 trace("Password '" + mypassword.text + "' is wrong");
                  myWindow = mx.managers.PopUpManager.createPopUp(_root,mx.containers.Window, true, {title:"Incorrect Password", closeButton: true});
                  myWindow.setSize(175,70);
                  myWindow.move(myWindow.x + 300, myWindow.y + 200);
                  windowListener.click = function(evt){_root.myWindow.deletePopUp()}
                  myWindow.addEventListener("click", windowListener);
         
     }
      trace(greenlight);
};
mypassword.addEventListener("focusOut", form);
password = mypassword.text;
stop();

500 points because this is urgent!!!!!!!
Avatar of Aneesh Chopra
Aneesh Chopra
Flag of India image

Hi,

two issues, I found. and as I fixed it, I found all working fine..

1.
uncomment following line
--------
//form = new Object();
----------

as you are using form object as listner, but it is not defined..
 so it should be there as
---------
form = new Object();
---------

2.
focusOut works only with Flash components, not with normal textField...
if you would use textInput instance for password, it will work fine

just add an instance of textInput component and assign instance name as "mypassword"
remove the normal textfield, if you have any.


Rgds
Aneesh
Avatar of prostang

ASKER

I am using a component.  I uncommented the form object command and published the swf.  Still not working.
there is definitely something which u are missing here to mention..

i request if you can upload the source File for reviewing

you can use http://www.yousendit.com to upload your file

uploaded.
Got the issue..

you need to put above code on frame 11.
on selection of radio button "user" movie stops at frame 11, here this code should be placed.

I tested it and code works fine....


Rgds
Aneesh
that solution works for the user side, but doesn't work for Projects>Move or archive or unarchive.  I tried placing that code on the application layer and the secondary layer.  Neither of those worked.
ASKER CERTIFIED SOLUTION
Avatar of Aneesh Chopra
Aneesh Chopra
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
OK.  got it to work by copying the code to frames 9 & 10, where the archive and unarchive are, but this presents a issue should I have to change passwords....
This to me is a work around and not a solution.  The listener was just copied (along with the other code) to three other frames.  I would like to have the listener work on a more global level.
you have to attach listener to a textField, and the code can be written on a frame where textField exists.

and code should also be executed to work...


ok, if you want to write code on only once, you should write it on frame 1, and frame one should also have textInput component with instance name "mypassword"
and you would have to keep the instance alive on each frame, then your code will work for all frames.