Autor Zpráva
vp
Profil *
dobry vecer,
jak zapsat udalost " bud kliknout mysi - nebo stisknout enter"
diky vp
Hanz
Profil
vp
// Kliknutí myší
onMouseDown=function{

}
// Zmáčknutí enter
var listener:Object = new Object();
listener.onKeyDown = function() {
if (Key.isDown(Key.ENTER)) {
trace("h");
}
};
Key.addListener(listener);
vp
Profil *
tato udalost ma byt prirazena tlacitku_btn...a ma to byt odesilaci tlacitko po vyplneni nejakeho formulare (napr.)...

nejak mi to nefunguje...
:-(
vp
vp
Profil *
dobry den,
nenapsal byste mi nekdo podrobnejsi napovedu - chci tu udalost priradit k buttonu (bud klavesa enter nebo stisk mysi - provede nejakou akci)...
dekuju vp
vavru
Profil
Presny postup:

1. Vlož do stage komponentu Button
2. pojmenuj ji např "btn"
3. vyber myší vrstvu v aktuálním framu, do které chceš vložit kód, který bude obsluhovat události tlačítka
4. stiskni F9 a vlož následující AS kód:

import mx.controls.Alert; // import komponenty Alert

var listener:Object = new Object(); // vytvoreni listeneru

listener.click = function(evt:Object){ // handler pro kliknuti
if(evt.target == btn) mojeAkce(); // otestovani zda jsme skutecne stiskli nase tlacitko (pro pripad, ze je listener sdilen vice objekty)
}

listener.onKeyUp = function() { // handler pro uvolneni klavesy
if (eval(Selection.getFocus()) == btn && Key.getCode() == Key.ENTER){ // otestovani zda mame ma nas button focus
mojeAkce();
}
};

Selection.setFocus(btn); // nastaveni aktualni selekce na nas button
Key.addListener(listener); // nastavime listenera pro udalosti klaves
btn.addEventListener("click", listener); // nastavime listenera pro udalost "click" naseho buttonu

function mojeAkce(){ // nase testovacia akce
Alert.show("provadi se akce");
}


5. Akce na Enter ti bude fungovat az po exportu do swf a spusteni v prohlizeci - jelikoz standalone flash player chyta udalost Enter (na textfieldech funguje Enter i ve flash playeru - ale to tu ted neresime).
vp
Profil *
diky :-)
vp
Profil *
mel bych ale preci jen jeste otazecku:

na stage jsem umistil componentu button my_btn,
a na prvni frame jsem umistil tento kod:

function myOnPress() {
trace("hello");
_root.d_txt.text = 'hallo';
}
function myOnKeyDown() {
if (Key.isDown(Key.ENTER)) {
Selection.setFocus(my_btn);
my_btn.onPress();
}
}
var myListener:Object = new Object();
myListener.onKeyDown = myOnKeyDown;
Key.addListener(myListener);
my_btn.onPress = myOnPress;


....kdyz pak otevru v exploreru hotove html, tak to funguje jen na kliknuti mysi a teprve na podruhe nebo po aktualizaci stranky (F5) to funguje i na stisk klavesy "enter"...nevite cim to muze byt ????

moc dekuju za odpoved, nemuzu se hnout z mista ...
vavru
Profil
Problem je v tom, ze tvuje SWF komponenta nema pri naloadovani stranky focus...

v IE to vyresis pomoci onLoad="window.document.mymovie.focus();" v tagu body

v ostatnich prohlizech nevim...nemam cas to dlouze zkoumat
vp
Profil *
diky
vp :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.