Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   kak to ja uzhe predlagal... (http://www.flasher.ru/forum/showthread.php?t=23004)

yurail 14.11.2001 15:42

kak to ja uzhe predlagal...
 
vikladivat prostie no interesnie kodi....
vot sam i vikladivayu......

uveren mnogih interesuet vopros: kak sdelat podobie windowskih command CTRL+chto to....

vot napisal ... polzuites.....

sozdaite na scene text pole s variable: _root.q ... eto prosto dlja proverki....

zatem zdelaite pustoi MC i na nego poveste sleduyushii cod:

Код:

onClipEvent (load) {
        function getParam (a) {
                _root.q = "Ctrl + " add a;
                ctrl = false;
        }
}
onClipEvent (keyDown) {
        if (Key.isDown(Key.CONTROL)) {
                ctrl = true;
        }
}
onClipEvent (enterFrame) {
        if (ctrl == false) {
        _root.q = "";
        }
}
onClipEvent (enterFrame) {
        if (ctrl == true) {
                if (Key.isDown(90)) {
                        getParam("Z");
                } else if (Key.isDown(88)) {
                        getParam("X");
                } else if (Key.isDown(67)) {
                        getParam("C");
                }
        } else {
                ctrl = false;
        }
}
onClipEvent (keyUp) {
        ctrl = false;
}

i u vas est standartnii CTRL+Z, X, C.....
deistvijam im naznachayut v function "getParam"....

udachi

Fisher 15.11.2001 12:33

Тогда уж лучше так.
onClipEvent (keyDown) {
if ((Key.getCode()==17)&&(!c)) {
c = 1;
}
}
onClipEvent (keyUp) {
if ((Key.getCode()==17)&&(c)) {
c = 0;
}
}
onClipEvent (enterFrame) {
if (c) {
if ((Key.getCode()==67)&&cc<>67) {
trace ("Ctrl+C");
cc = 67;
} else if ((Key.getCode()==86)&&cc<>86) {
trace ("Ctrl+V");
cc = 86;
}
}
}
Здесь отработка процедуры по нажатию происходит только один раз в отличии от твоего варианта. :) Тестировать ессесно во внутреннем плэере.

yurail 15.11.2001 12:45

nifiga sebe...
rabotaet cherez raz.. dazhe cherez dva....

Fisher 15.11.2001 13:07

Нормально работает :) У меня при тестировании сбоев не было - уже в генератор воткнул. Просто на enterFrame изначально не хотелось вешать - чтобы проц не грузить. Но здесь ты прав без enterFrame не обойтись. А вот что бы все равно не сильно перерабатывать я еще и проверяю чтобы отработалось только один раз. Просто здесь бутет отрабатываться только одно нажатие искомой комбинации.
зы Ну еще можно добавить одну строку в
onClipEvent (keyUp) {
if ((Key.getCode()==17)&&(c)) {
c = 0;
cc = 0;
}
}


yurail 15.11.2001 13:15

Pash, nu ne rabotaet u menja tvoi kod......
srabativaet odin raz iz 5 ...........
nu ubei menja..... :-)

yurail 15.11.2001 13:18

o..
zarabotalo...
no kak to tormozit......
kak budto cherez sekundu srabativaet

Fisher 15.11.2001 13:26

:) :) :) Утром в газете - вечером в куплете :p

gOloVasTicK '~ 15.11.2001 18:45

Вот мужики, зацените :)
На вашу же тему. Но так как многие комбинации являются системными работает довольно странно :) Например Ctrl+q - quit, a Ctrl+a ловит только кейАп :)

gOloVasTicK '~ 15.11.2001 18:46

Вложений: 1
Аттач забыл :)

gOloVasTicK '~ 15.11.2001 18:48

Да! Совсем забыл сказать: "Вы старые извращенцы" ;)
Нафига ЕнтерФрейм?????????????


Часовой пояс GMT +4, время: 23:25.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.