Autor Zpráva
Paja
Profil *
Prosím, může mi někdo vysvětlit, jaktože nefunguje následující kód, který jsem okopíroval z flashové nápovědy? Myšové akce jako třeba onMouseMove fungují bezproblémově, ale s klávesnicí to prostě nejde. Už fakt nevím, čím by to mohlo být...

_root.onKeyDown = function()
{
trace("onKeyDown called");
};

nebo

onClipEvent(keyDown)
{ if(Key.getCode() == Key.RIGHT) trace('prave');
}


Ani jeden z příkladladů výše nejede, ale když to vyměním např. za onMouseMove, tak to najednou jde.
Dík za radu
Zephy
Profil
Musis ty hlasky dat jako skript Movie Clipu, a pak ti zafunguji.
Vis jak vytvorit MovieClip?
Nakreslit si nejaky objekt, oznacit ho, na nem pravy na mysi a v menu vybrat "Convert to symbol..." (nebo F8). Tam zvolit "Movie Clip", zadat jmeno a OK. Pak oznacit vytvoreny MC a do Action skriptu vlozit tebou uvedeny kod:


onClipEvent(keyDown)
{ if(Key.getCode() == Key.RIGHT) trace('prave');
}


Pak uz to zafunguje ;o)
Paja
Profil *
Dik za radu, já jsem to dával vždycky do akcí toho klipu.
BTW: MC samozřejmě vytvořit umím :-)
Paja
Profil *
Ale zajímalo mě i proč nefunguje tento kód:

_root.onKeyDown = function()
{
trace("onKeyDown called");
};

ten totiž nefunguje takjaktak :-(
Zephy
Profil
Aha, ja myslel ze ti nejde ani ten onClipEvent.
Jinak u toho "onKeyDown", jsem si zkousel i prikladek v napovede a ani to mi nechtelo fungovat. Asi blbej den. Jediny jak to fungovalo, tak pres listener:

var keyListener = new Object();
keyListener.onKeyUp = function (evt)
{
if (Key.getCode() == 13)
{
trace("stisknut ENTER");
} // end if
};
Key.addListener(keyListener);


Takhle se to uz dalo odchytavat.
Treba jeste nekdo vysvetli jak se to pouziva.
Jenom myslim, ze samostatne hlaska "onKeyDown" byt nemuze.
Musi pred ni byt bud jmeno listeneru (s tim mi to slo) nebo napoveda rika ze tam muze byt i "instance variable" tlacitka. Napr. "my_button.onKeyDown" (ale to mi neslo).
Vim ze jsem moc neporadil, ale aspon takhle.
Paja
Profil *
Su rád, že se snažíš mi pomoct.
Ano, samostatně to ".onKeyDown()" opravdu být nemůže. Používal jsem to třeba na _root, this nebo prostě nějaký MC.
Ale já jsem to nepoužíval na listener, ale jako metodu movieclipu (stejně jako ty akce s myší, jak jsem popsal výše). Prostě jsem to dělal přesně podle té nápovědy tak jako ty se stejně negativním výsledkem. Tak nevím, jestli mají u Macromedie guláš ve vlastním programu nebo co vlastně.

BTW: (Úplně mimochodem, což bych tady teď nechtěl řešit, ve Flashi jsem našel několik slutečných chyb, které znesnadňují používání Flashe jako programovacího nástroje)
FlashManiac
Profil
Paja
no žádný nástroj není bez chyb...jde jen o to,kdž na nějakou narazíš, jak to udělat tak aby ses jí vyhnul a přitom zachoval funkčnost programu...

btw onKeyDown(up) je událost pouze listeneru..vím že ji nápověda má i v případě tlačítka..ale funguje jen s listenerem,ale to tvoje
onKeyDown=function()
take jde,ale musis pred tim registrovat listener k rootu zde>
Key.addListener(_root);

_root.onKeyDown=function(){
trace("OK");
}


pak to bude fungovat
Paja
Profil *
Dik! moc jsi mi pomohl
Toto téma je uzamčeno. Odpověď nelze zaslat.