Autor | Zpráva | ||
---|---|---|---|
Geo Profil * |
#1 · Zasláno: 21. 7. 2007, 20:20:32
Dobrý den,
Mám zde takový problém, tlačítka nereagují na stisk klávesy. Prosím porad'te. děkuji. btn = function (who:String) { var red = "Key."+who; if (Key.isDown(red)) { this.gotoAndStop(2); } else { this.gotoAndStop(1); } this.onPress = function() { this.gotoAndStop(2); }; }; btn_r.onEnterFrame = btn("RIGHT"); btn_l.onEnterFrame = btn("LEFT"); btn_u.onEnterFrame = btn("UP"); btn_d.onEnterFrame = btn("DOWN"); |
||
Geo Profil * |
#2 · Zasláno: 23. 7. 2007, 11:52:26
Opravdu nevíte co stím ?
|
||
niky Profil |
#3 · Zasláno: 23. 7. 2007, 13:51:03
Pořádně jsem se nad tim nezamýšlel, ale podle mě tam dělá bordel to this (this.gotoAndStop...) a taky ta promněnná red, která je globální...
|
||
Geo Profil * |
#4 · Zasláno: 23. 7. 2007, 14:20:33
Takže pomocí var se označují globální proměnné?
Děkuji za radu, hned to vyzkouším. |
||
niky Profil |
#5 · Zasláno: 23. 7. 2007, 14:37:15
Timhle způsebom jo...
Globální promněnná red function btn() { Lokální promněnná red function btn() { |
||
Geo Profil * |
#6 · Zasláno: 23. 7. 2007, 17:30:17
Když to udělám, tak to napíše:
if (Key.isDown(red)) { = mišmaš |
||
niky Profil |
#7 · Zasláno: 23. 7. 2007, 18:55:54 · Upravil/a: niky
Jo a tenhle zápis ti nebude správně fungovat: btn_r.onEnterFrame = btn("RIGHT");
Musíš to zapsat takhle: btn_r.onEnterFrame = function() { adt. Taky mě napadlo, že jak tam předáváš hodnotu pomocí red, tak to je docela blbost... Ale nedokážu ti poradit, jak to předělat... :P |
||
Geo Profil * |
#8 · Zasláno: 23. 7. 2007, 22:45:34
Bohužel to taky nefunguje, ale děkuji za onEnterFrame, to funguje.
|
||
Geo Profil * |
#9 · Zasláno: 24. 7. 2007, 15:39:49
Asi bude něco stím red.
|
||
embee Profil |
#10 · Zasláno: 24. 7. 2007, 16:28:14
Geo
pokud das do funce pred promennou keyword var, jedna se lokalni promennou - takova promenna existuje jenom v ramci funkce a po jejim skonceni je z pameti smazana. Pokud deklarujes promennou mimo funkci se slovickem var, je to standartni promenna. Glogalni promenne se pak definuji pomoci slova global (nebo _global, ted presne nevim) |
||
niky Profil |
#11 · Zasláno: 24. 7. 2007, 19:30:47 · Upravil/a: niky
Koukám že tady šířim bludy... :( Nevim jak to, ale nějak se mi zafixovalo, že když tam je ve funkci jen samotný var, tak to je globální. Nevim jak jsem na to přišel... embee to napsal správně.
Promiňte za tuhle mistifikaci :( Bohužel už ty příspěvky nemůžu změnit, takže v mé první a druhé radě, jak mluvim o globální promněnné to je špatně. Všechny jsou lokální. |
||
embee Profil |
#12 · Zasláno: 24. 7. 2007, 20:16:42
niky
f poho se stane kazdemu :) |
||
Geo Profil * |
#13 · Zasláno: 24. 7. 2007, 21:06:21
Tenhle kus kódu funguje:
Tenhle už ne:
Myslím, že tady je ten problém, ale nevím jak ho spravit, proto prosím prorad'te. Děkuji. |
||
embee Profil |
#14 · Zasláno: 24. 7. 2007, 21:19:19
Ja myslim ze cela logika kodu je spatna - proc proboha pri kazde udalosti on enter frame se musi znovu nastavovat cela sada akci pro stisk jednotlivych klaves? Je to zbytecne a zbytecne to zere vykon. Cela situace se da mnohem lepe zvladnout pomoci modelu event - listener. Listener je genericky objekt, ktery nasloucha udalostem klavesnice - tudiz skript se spousti pouze v pripade, ze je nejaka klavesa stisknuta a ne pri kazde udalosti onEnterFrame. To, jak kod napsat je rozebrane tady http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=21&topic=5 3161 - je tam sice par preklepu, ale ty se daji hrave odstranit. Hlavne jde o to, ze kod je tam napsany sice pro konkretni situaci, ale korektne a da se z nej odvodit celkem bez problemu kod pro tvou konkretni potrebu.
|
||
Geo Profil * |
#15 · Zasláno: 24. 7. 2007, 21:37:22
Děkuji.
Někde jsem slyšel že listener má delší odezvu a proto není vhodný třebo pro pohyb letounu , který se opakuje často. Je to pravda ? |
||
embee Profil |
#16 · Zasláno: 24. 7. 2007, 21:44:50
Geo
tak o tom slysim prvne, tudiz nemuzu slouzit. Zkus si to vygooglit. |
||
Časová prodleva: 17 let
|
0