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

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

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

Регистрация: Jan 2006
Сообщений: 15
По умолчанию Как реализовать триггер???

Дано: Flash, использующий часто и много callback-функции. Задача. Реализовать триггер, т.е. гарантировано дождаться результата функции. Тупой цикл не подходит - flash начинает ругаться, что клип собирается повесить машину. Помогите, а то грустно

Старый 27.01.2006, 17:38
MIX-er вне форума Посмотреть профиль Отправить личное сообщение для MIX-er Найти все сообщения от MIX-er
  № 2  
Ответить с цитированием
MIX-er
 
Аватар для MIX-er

Регистрация: Jun 2005
Сообщений: 612
Отправить сообщение для MIX-er с помощью ICQ Отправить сообщение для MIX-er с помощью Yahoo
ля ля ля ... песенка повеселело?

берёшь переменную какую нить и меняешь её..))
__________________
Best regards, Boris Petrov

Старый 27.01.2006, 17:40
MIX-er вне форума Посмотреть профиль Отправить личное сообщение для MIX-er Найти все сообщения от MIX-er
  № 3  
Ответить с цитированием
MIX-er
 
Аватар для MIX-er

Регистрация: Jun 2005
Сообщений: 612
Отправить сообщение для MIX-er с помощью ICQ Отправить сообщение для MIX-er с помощью Yahoo
вобщем что именно ты подрузомеваешь под тригером???
__________________
Best regards, Boris Petrov

Старый 27.01.2006, 18:35
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
и что ты подразумеваешь под callback-функциями ?
зы:хлебом не корми - дай реализовать какой-нибудь 'триггер' (в простонародье : переключатель, срабатывающий по условию..)

Старый 28.01.2006, 00:20
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 5  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Читать про EventDispatcher и event handlers

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

Регистрация: Jan 2006
Сообщений: 15
По умолчанию А реально кто-нибудь помочь может?

Цитата:
Сообщение от silin
и что ты подразумеваешь под callback-функциями ?
зы:хлебом не корми - дай реализовать какой-нибудь 'триггер' (в простонародье : переключатель, срабатывающий по условию..)
Я не нешел в MX 2004 вообще каких-либо примитивов синхронизации. И сильно подозреваю, что их там нет. Задача, по сути, - дождаться завершения дочернего потока вычислений из потока-родителя.

Старый 28.01.2006, 13:00
megasmall вне форума Посмотреть профиль Найти все сообщения от megasmall
  № 7  
Ответить с цитированием
megasmall
Banned
[+ 1.1 24.10.2005]
[+ 1.11 27.01.2006]
[1.11 28.01.2006]

Регистрация: Jul 2005
Сообщений: 107
вместо цикла юзай onEnterFrame, либо читай про EventDispatcher

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Задача, по сути, - дождаться завершения дочернего потока вычислений из потока-родителя.
не знаю как организваны эти 'потоки'.., обычная практика такая:
дочерний процесс при завершении вызывает соответствующий метод родителя или любого другого объекта, внесенного в массив слушателей (_listeners),
реализуется методами AsBroadcaster (встроенный объект) или класса EventDispatcher

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

Регистрация: Jan 2006
Сообщений: 15
По умолчанию Может так понятнее будет?

Класс, наследник mx.services.WebService
Код:
/**
 * Base Class For Web Service Page
 * (c) ...
 *
 */

import mx.services.WebService;

class WebServicePage
{
    /**
     * Current Session Id
     *
     */
    public static var SID;

    /**
     * Web Service URL
     *
     */
    private static var serviceURL;  

    /**
     * Inner CallBack Object For SOAP functions
     *
     */
    public var callBack:Object = new Object();
    /**
     * Link to "this" for callback object
     */
    public var service:WebServicePage;
	
	/**
	 * Parent Movie Clip For New Page View
	 *
	 */
	var parentMovie:MovieClip;
    
    public function WebServicePage(_parentMovie) {

		parentMovie = _parentMovie;
		if (!serviceURL) {
			
			if (_root.wsdl) {
				
				serviceURL = _root.wsdl + '?wsdl';
			} else {
				
				serviceURL = 'http://127.0.0.1/ig-php/server.php?wsdl';
			}
		}
		this.prototype = new _global.mx.services.WebService(serviceURL);
        if (!WebServicePage.SID) {
Вот тут то и нужно гарантировано дождаться результата....
Код:
			
			// Init session trigger
            this.accessRemote('init');
        }
        this.service = this;
    }

    /** 
     * Execute SOAP call
     *
     */
    public function accessRemote(methodName:String, obj:Object)
	{	
			
	this.callBack = this.prototype[methodName](WebServicePage.SID, obj);
        this.callBack.resultFunction = this[methodName add '_onResult'];
        this.callBack.statusFunction = this[methodName add '_onFault'];
        this.callBack.service = this.service;

        if (!this.callBack.statusFunction) {
            
            this.callBack.statusFunction = this['default_onFault'];
        }

        this.callBack.onResult = function(result){
            this.resultFunction(result);
        }
        this.callBack.onFault = function(status){           
            this.statusFunction(status);
        }
    }
    
    /** 
     * Store Session ID
     *
     */
    function init_onResult(data)
    {
        WebServicePage.SID = data;
        trace('SessionID = ' add data);     
    }
    function init_onFault(data)
    {
        WebServicePage.SID = 'fault';
        trace('Session fault');     
    }

    function default_onFault(code) {
        
        trace('WEBSERVICE FAULT!');
        
        for(var a in code) {
			
            trace([a,code[a]]);
        }
    } 
    
    /**
     * Unserialize SOAP results
     *
     */
    public function unserialize(data)
    {
        for (var aNode:XMLNode = data.firstChild; aNode != null;  aNode = aNode.nextSibling) {
            
            this[aNode.nodeName] = aNode.firstChild.nodeValue;
        }
    }
}
Использовать WebServiceConnector.trigger - нихрена не помогает!


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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
ну так (если правильно понял):
вызов accessRemote ('init') должен быть не в конструкторе, а в методе объекта, отслеживающего(сетинтервалом,энтерфреймом) WebServicePage.SID..

Создать новую тему Ответ Часовой пояс 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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.