![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Что происходит, если вызванный метод объекта еще не закончил работу, а при этом приходит новый вызов его же? Он запускается паралельно или ждет окончания предыдущего, или вообще игнорируется? Что происходит со свойствами, которые этот метод в процессе своей работы изменяет?
|
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Все будет зависеть от того, что ты делаешь или глюки или заменяет предыдущий.
|
|
|||||
|
он запускается параллельно, и параллельно будут все переменные менять, если они конечно не локальные...
__________________
"We Are The Champions My Friends!" Queen |
|
|||||
|
Ну вот у меня есть объект, который перемещается на фиксированые отрезки (по клеткам). У других юзеров на этой сцене должно синхронно отображаться его движение.
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;
}
}
}
}
}
|
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Где паралельность, будет переопределяться
|
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Я так думаю: нужно определять закончил-ли движение объект у клиента и тогда, если получены новые данные, двигать объект опять. А по идее время должно быть на загрузку новых данных. Оттуда и задержки.
|
|
|||||
|
у меня свойство "allowmove" и определяет это. Но при частом вызове функции, оно все равно не очень-то помогает.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 17:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|