![]() |
Listener
Kak sdelat' tak 4tob 2 (naprimer) objecta upravljalis' s klaviaturi nezavisimo?
Sdelal 2 Listenera 1 k kagdomu objectu, no dvigajutsja objecti vse ravno po otdelnosti. Est' li vozmognost raboti s bufferom klaviaturi? MOget ja esche 4ego-to ne dogonjau i Listener voobsche ne nugen? Pasibo vsem... |
Key.addListener(kl={});
kl.onKeyDown=function(){ switch(Key.getCode()){ case 49 : //действия по клавише('1') для mc1 mc1._x+=10; break; case 50 : //действия по другой клавише('2') для другого мувика mc2._x+=10; break; //и так далее в том же духе } } |
K sogaleniu ento ne rabotaet.... pri uderganii 2-x dlja raznix MC dvigaetsja tolko 1 object
Proboval delat dlja kagdogo objecta odelnii Listener no effect totge...vernne nikagogo effecta. Moget ja туплю? |
Привет!
Для того что бы обрабатывались одновременное нажатие клавиш, сделай след. образом. При нажатии на клавишу устанавливай некий флаг в тру, а на мувике, напр. в ентерфрейм, стоит проверка на этот флаг и соотв. событие. Для обратного изменения делай листенер на кейУп. удачи |
Цитата:
пример: Key.addListener(kl={}); kl.onKeyDown=function(){ var k=Key.getCode(); if(k==49)mc1.onEnterFrame=function(){this._x+=10}; if(k==50)mc2.onEnterFrame=function(){this._x+=10}; } kl.onKeyUp=function(){ var k=Key.getCode(); if(k==49)delete mc1.onEnterFrame; if(k==50)delete mc2.onEnterFrame; } |
Rebjat, ja vot tut gljanul odin isxodnik (kak govoritsja ..vse poznaetsja v sravnenii) i tam prostoja function dlja ka*dogo objecta
function fKeyDown(){ if (Key.isDown(68)) { _root.mc._x += d; } if (Key.isDown(65)) { _root.mc._x -= d; } if (Key.isDown(87)) { _root.mc._y -= d; } if (Key.isDown(83)) { _root.mc._y += d; } } i vse rulit kak v skaske. Ja delal function s switch() & case (po-moemu ento izjaschnee... i kone4no bistree) no objecti, padla, dvigalis' tolko po o4eredi: function fKeyDown(){ switch (Key.getCode()){ case 68: _root.mc._y -= d; break; case 65: _root.mc._y += d; break; case 87: _root.mc._x -= d; break; case 83: _root.mc._x += d; break; } } Ne poimu v 4em delo... 2-oi variant i bistree i krasivshe, no sobaka ne rabotaet kak dol*no. Kto mo*et skazat v 4em xren'? |
потому что по break обработка switch прерывается и реакции на следующие клавиши нет
|
Кстати, исключенние из порядка обработки switch'а команды break; один из вариантов условия or:
switch (Key.getCode()){ case 68: _root.mc._y -= d; case 65: _root.mc._y += d; case 87: _root.mc._x -= d; case 83: _root.mc._x += d; выполнит все проверки |
Цитата:
|
Так точно :)
|
| Часовой пояс GMT +4, время: 22:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.