![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Цитата:
вообщето, лучше писать так: switch (Key.getCode()) {
case Key.RIGHT :
case Key.LEFT :
_root.main.game.shar_stop();
break;
}
... Проблема осталась кстати =) З.Ы. Если, хочешь я могу выложить версию с твоим кодом. он рабоает в плеере, но в браузере не очень. |
|
|||||
|
>>но если сделать как ты сказал, то чар будет останавливаться после отжатия пробел.
ОК, согласен, но switch вместо if все равно не смотрится.. >>Если, хочешь я могу выложить версию с твоим кодом. он рабоает в плеере, но в браузере не очень. если честно: не хочу.. соображения: диспатчер висит на onEnterFrame, стало быть реагирует не мгновенно, а только при смене кадра, возможно отсюда траблы..(попробовать увеличить фпс, или на setInterval это добро повесить..) |
|
|||||
|
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Написал во Flashcoders -- посмотрим, что делают люди в таких случаях. Спасибо за первую интересную тему за неделю.
|
|
|||||
|
http://www.actionscript.org/forums/s...d.php3?t=93745
- этот же пост. могу перевести кому надо. ... сетИнтервалы тоже пробывал, тоже не помогли. .. >ОК, согласен, но switch вместо if все равно не смотрится.. ИМХО это holy wars, поэтому отвечать не буду. >соображения: диспатчер висит на onEnterFrame, стало быть реагирует >не мгновенно, а только при смене кадра, возможно отсюда траблы..>(попробовать увеличить фпс, или на setInterval это добро повесить..) ни то не то не помогло. как я сказал, в первом посте, необходима, чтобы игра работа в Броузере. |
|
|||||
|
ну вот пример в аттаче исходник проблемы.
|
|
|||||
|
вобщем я так и не понял, что за проблема с браузером: у меня одинаково работает как в IDE так и браузере(FF1.5)..
решение с глобальным вещанием события: import mx.events.EventDispatcher;
var xspeed = 0, yspeed = 0;
var kd=[{state:false,code:Key.RIGHT},{state:false,code:Key.LEFT},{state:false,code:Key.SPACE}];
EventDispatcher.initialize(kd);
kd.addEventListener('key',onKey);
setInterval(function(){
for(var i in kd){
if(kd[i].state!=Key.isDown(kd[i].code)) kd.dispatchEvent({type:'key',what:!kd[i].state ,code:kd[i].code});
kd[i].state=Key.isDown(kd[i].code);
}
},10);
function onKey(e){
switch(e.code){
case Key.LEFT : xspeed=-1*e.what;break;
case Key.RIGHT: xspeed=1*e.what;break;
case Key.SPACE: yspeed=10*e.what;
}
}
mc.onEnterFrame = function() {//mc - управляемый мувик
this._x += xspeed*2;
this._y += yspeed;
yspeed /= 2;
if (yspeed<1) {
yspeed = 0;
}
};
|
|
|||||
|
silin
... ты решил проблему, изменив условие =) ты изменил архитектуру этого примера, хоть оно и работает, но оно не подходит =(((( Обязательное условие - то что персонаж перестает бегать ИМЕННО при отпускании клавиши, а не каждый фрейм. |
|
|||||
|
и рад бы помочь, но уже не понимаю о чем речь:
ты спрашивал как отловить отпускание всех клавиш, а уж как он там перестает бегать, 'ИМЕННО при отпускании клавиши или каждый фрейм' (?), дело хозяйское.. к слову, в моем примере ИМЕННО при отпускании клавиши он и перестает.. |
|
|||||
|
первый код из 17 поста, отлично смотриться.
у меня он работает в onproblem.fla, но в игре отрубаеться управление в броузере. моэет это из за того что теряеться фокус? |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|