Как сделать Java объект видимым в Sub mxml в основной файл mxml во Flex?

В моем приложении, использующем Flex-Blazeds-java..., на моей стороне приложения Flex есть два файла mxml

  1. Main.mxml
  2. Login.mxml

В файле Main.mxml есть кнопка с названием Login нажмите эту кнопку один всплывающее окно, которое называется Login.mxmlв этом файле у меня есть логика аутентификации для подключения Java... пример кода`

public var userService:UserService = new UserService();
[Bindable] public var userVO1:UserVO = new UserVO();
protected function loginUser(event:MouseEvent):void
{

var rpcAuthenticateUser:AsyncToken = userService.authenticateUser(userid_id.text, password_id.text);//Hear authenticateUser(-,-) is a java method it return UserVO object
rpcAuthenticateUser.addResponder(new mx.rpc.Responder(handler_success, handler_failure));

}
private function handler_failure(event:FaultEvent): void {
Alert.show("in handler_failure :" + event.message);

}


   private function handler_success(event:ResultEvent): void {
    userVO = event.result as UserVO;
     Alert.show("test "+userVO.loginId);
        }

Слышно, что вход в систему работает идеально в соответствии с моей логикой базы данных, а также, если это ResultEvent, в окне оповещения отображается правильное значение (например, loginId is 'narasimham')... и все работает отлично по умолчанию в Login.mxml нет

Now The Problem Start...

Я хочу использовать UserVO объект в файле Main.mxml, так что я использую следующий код..

     public var loginUserVar:Login = new Login();
  protected function afterLoginUser(event:FlexEvent):void
   {
    Alert.show("LoginId ="+loginUserVar.userVO.loginId);        
   }

На самом деле мое мышление это окно оповещения, дающее значение narasimham но это дает null значение.

Почему это дает нулевое значение? Их какой-либо Scope указать для создания переменной?

2 ответа

Решение

Исправьте Ethrbunny. Я не храню значение объекта userVO, поэтому он не доступен для файла mxml Out side....

Так в приложении Flex(3.5) в файле Login.mxml я добавляю следующий код...

Application.application.userVO = event.result as UserVO;
//Hear userVO is Object defined in Main.mxml file....

В handler_success вам нужно установить значение userVO1 в противном случае он не будет доступен от вашего mxml-файла. Вы также должны сослаться на это в afterLoginUser как userVO1 вместо userVO,

Другие вопросы по тегам