Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.01.2006, 13:54
zevvs вне форума Посмотреть профиль Отправить личное сообщение для zevvs Посетить домашнюю страницу zevvs Найти все сообщения от zevvs
  № 11  
Ответить с цитированием
zevvs

Регистрация: Jan 2006
Сообщений: 15
Цитата:
Сообщение от silin
ну так (если правильно понял):
вызов accessRemote ('init') должен быть не в конструкторе, а в методе объекта, отслеживающего(сетинтервалом,энтерфреймом) WebServicePage.SID..
1). Это, как минимум, оптопопилотомия (оперирование глаза через задний проход)
2). Объекты этого класс, мать его, создаются из разных мест, в разных приложения и т.д. т перетачивать кучу кода - как минимум... не весело... но...
3). ...похоже другого пути нет...


Последний раз редактировалось zevvs; 28.01.2006 в 14:30.
Старый 28.01.2006, 14:57
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 12  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
..создаются из разных мест, в разных приложения и т.д. т перетачивать кучу кода - как минимум...
может быть и нет..
собственно, я имел ввиду такую штуку:
Код:
var watchId: Number;
public function WebServicePage(_parentMovie) {

	watchId=setInterval(this,"sidWatch",10);
}
function sidWatch(){
	if (!WebServicePage.SID) {			
        this.accessRemote('init');
		clearInterval(watchId);
    }
}

Старый 28.01.2006, 15:01
zevvs вне форума Посмотреть профиль Отправить личное сообщение для zevvs Посетить домашнюю страницу zevvs Найти все сообщения от zevvs
  № 13  
Ответить с цитированием
zevvs

Регистрация: Jan 2006
Сообщений: 15
Спасибо, я выкрутился более изящьно :-) Тем более Ваш метод не дает гарантии что я получу сессию раньше, чем запущу другой запрос :-) Тема закрыта...
__________________
This game has no name. It will never be the same.

Старый 28.01.2006, 15:11
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 14  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
а можно поинтересоваться как Вы выкрутились?

Старый 28.01.2006, 15:20
zevvs вне форума Посмотреть профиль Отправить личное сообщение для zevvs Посетить домашнюю страницу zevvs Найти все сообщения от zevvs
  № 15  
Ответить с цитированием
zevvs

Регистрация: Jan 2006
Сообщений: 15
Запросто. Если Вы вникали в тот код, который я показал, то наверное поняли, что я сделал: довольно удобный враппер для soap-запросов. Соответственно, у меня есть набор классов, которые от него унаследованы и реализуют реакции на конкретный soap-вызов. Так вот. Проблема возникала только в точках входа в систему (там, где мне еще не известен идентификатор сессии, но уже сильно нужен). Их, к моей радости оказалось всего 5. Осталось только в этих классах перегрузить init_onResult и добавить проверку в конструктор, примерно так:
Код:
/**
 *  Login Page
 *  Execute auth process
 *  (c) Sibirix, 2006
 */
class LoginPage extends WebServicePage
{
	var service: LoginPage;
	var login, password;
	
	function LoginPage(_parentMovie, _login, _password)
	{
		trace('LoginPage: ' + _login + ':' + _password);
		parentMovie = _parentMovie;
		login = _login;
		password = _password;
	    this.WebServicePage(_parentMovie);	
		if (WebServicePage.SID) {
			
			accessRemote('LoginPageWebservice_auth', login, password);
		}
	}
	function LoginPageWebservice_auth_onResult(code)
	{
        if (code == 'true') {
			
			trace('Auth success');
			service.parentMovie.attachMovie('AdminGalleriesListPageView', 'adminGalleriesPageView', service.parentMovie.getNextHighestDepth());			
		} else {
			
			trace('Auth fault');
			service.parentMovie.attachMovie('LoginPageView', 'loginPageView', service.parentMovie.getNextHighestDepth());
		}
	}
	function init_onResult(data)
	{
		_parent.init_onResult(data);
		service.accessRemote('LoginPageWebservice_auth', service.login, service.password);
	}
}
__________________
This game has no name. It will never be the same.

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.