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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Sep 2005
Адрес: Kiev
Сообщений: 73
Отправить сообщение для Annihilator с помощью ICQ
Post что происходит при множественном вызове метода?

Что происходит, если вызванный метод объекта еще не закончил работу, а при этом приходит новый вызов его же? Он запускается паралельно или ждет окончания предыдущего, или вообще игнорируется? Что происходит со свойствами, которые этот метод в процессе своей работы изменяет?

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

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Все будет зависеть от того, что ты делаешь или глюки или заменяет предыдущий.

Старый 23.01.2007, 15:26
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 3  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
он запускается параллельно, и параллельно будут все переменные менять, если они конечно не локальные...
__________________
"We Are The Champions My Friends!" Queen

Старый 23.01.2007, 15:53
Annihilator вне форума Посмотреть профиль Отправить личное сообщение для Annihilator Найти все сообщения от Annihilator
  № 4  
Ответить с цитированием
Annihilator
 
Аватар для Annihilator

Регистрация: Sep 2005
Адрес: Kiev
Сообщений: 73
Отправить сообщение для Annihilator с помощью ICQ
Ну вот у меня есть объект, который перемещается на фиксированые отрезки (по клеткам). У других юзеров на этой сцене должно синхронно отображаться его движение.
Код:
dynamic class Hero extends MovieClip {

var xmap:Number=null, ymap:Number=null, newpos:String="_", pos:String="front", act:String="stand";
var dirx:Number=0, diry:Number=0, allowmove:Boolean=false;
var user_id:Number=null, id:Number=null;
var mspeed:Number=10, scene_id=null;

function Hero() {
	super();
	this.allowmove=true;
	Key.addListener(this);
	onKeyDown=function(){
		if(this.allowmove){
			if (Key.isDown(Key.LEFT)){
				this.newpos="left";
				this.moveon();
			} else if (Key.isDown(Key.UP)){
				this.newpos="back";
				this.moveon();
			} else if (Key.isDown(Key.DOWN)){
				this.newpos="front";
				this.moveon();
			} else if (Key.isDown(Key.RIGHT)){
				this.newpos="right";
				this.moveon();
			}
		}
	}
}

public function moveon(){
	if(this.allowmove){
		this.onEnterFrame=function(){
			if((this.diry==0 && this._x*this.dirx<((this.xmap+this.dirx)*cellsize)*this.dirx) || (this.dirx==0 && this._y*this.diry<((this.ymap+this.diry)*cellsize)*this.diry)){
                                this.allowmove=false;
				this._x=this._x+(this.dirx*this.mspeed);
				this._y=this._y+(this.diry*this.mspeed);
			} else {
				this.mc.gotoAndStop(this.pos+"_stand");
				this.xmap=int(this._x/cellsize);
				this.ymap=int(this._y/cellsize);
				this.allowmove=true;
				delete this.onEnterFrame;
			}
		}
	}
}

}
Из-за того, что надо составить XML, переслать сообщение о начале движения через сокет-сервер и на удаленных клиентах его разобрать, набегают задержки; в результате на удаленных клиентах через две-три клетки объект зависает на месте, хотя на клиенте-хозяине продолжает двигаться. То есть происходит это самое наложение активаций одной и той же фунуции. Как быть?

Старый 23.01.2007, 15:53
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 5  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Код:
mc.onPress = function(){
this.onEnterFrame = function(){
this._x++
}
}
Где паралельность, будет переопределяться

Старый 23.01.2007, 16:03
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 6  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Я так думаю: нужно определять закончил-ли движение объект у клиента и тогда, если получены новые данные, двигать объект опять. А по идее время должно быть на загрузку новых данных. Оттуда и задержки.

Старый 23.01.2007, 16:34
Annihilator вне форума Посмотреть профиль Отправить личное сообщение для Annihilator Найти все сообщения от Annihilator
  № 7  
Ответить с цитированием
Annihilator
 
Аватар для Annihilator

Регистрация: Sep 2005
Адрес: Kiev
Сообщений: 73
Отправить сообщение для Annihilator с помощью ICQ
у меня свойство "allowmove" и определяет это. Но при частом вызове функции, оно все равно не очень-то помогает.

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

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

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


 


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


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