Просмотр полной версии : Как сделать, что бы выполнялось действие при наборе "кодового слова"
Подскажите, пожалуйста, как мне реализовать такое...
on (press, keyPress "1") {this.play();} - когда нажимаю клавишу "1" происходит выполнение действия
А как мне сделать так, что бы при вводе, скажем, слова "medved" происходил переход на заданный кадр?
crazyone
10.09.2008, 12:44
//кодовое слово
var word="medved";
//переменная для хранения набранного текста
var typed="";
onKeyDown=function(){
// преобразовываем код нажатой кнопки в букву и добавляем к переменной
// способ приводит к тому, что слово не чуствительно к расскладке
typed+=String.fromCharCode(Key.getAscii());
// Обрезаем лишнее, чтобы не хранить все в памяти
typed=typed.substr(-word.length);
// проверяем, набрали ли нужное слово
if(typed.indexOf(word)!=-1){
trace("You had typed \"medved\"!");
}
}
Key.addListener(this);
// вообще можно было бы обрезать по таймеру, или еще как-нибудь, но общий принцип понятен
//кодовое слово
var word="medved";
//переменная для хранения набранного текста
var typed="";
onKeyDown=function(){
// преобразовываем код нажатой кнопки в букву и добавляем к переменной
// способ приводит к тому, что слово не чуствительно к расскладке
typed+=String.fromCharCode(Key.getAscii());
// Обрезаем лишнее, чтобы не хранить все в памяти
typed=typed.substr(-word.length);
// проверяем, набрали ли нужное слово
if(typed.indexOf(word)!=-1){
trace("You had typed \"medved\"!");
}
}
Key.addListener(this);
// вообще можно было бы обрезать по таймеру, или еще как-нибудь, но общий принцип понятен
Сделал, но не получается... :wacko:
lexa2000lexa
10.09.2008, 20:02
Не работает так как вы смотрите это в IDE есле же смотреть стандартным плеером то все работает, либо можно при просмотре в IDE поставить галку Disable Keybord Shortcuts в меню control.
crazyone
10.09.2008, 20:11
или по onChanged
Это же не при вводе в поле, а куда угодно.
Сделал, но не получается...
Что вы сделали? Вставили этот код в кадр, запустили флешку и при наборе слова medved вам не трейсится "You had typed \"medved\"!"?
Не верю.
Не работает так как вы смотрите это в IDE есле же смотреть стандартным плеером то все работает, либо можно при просмотре в IDE поставить галку Disable Keybord Shortcuts в меню control.
Если всталаяю вместо слова "medved" 123 всё прекрасно работает, а в случаи с буквами - нет...
Disable Keybord Shortcuts в меню control...облазил всё... не нашёл..
(у меня adobe flash cs3) :umnik2:
Disable Keybord Shortcuts в меню control...облазил всё... не нашёл..
Это не в меню Флэш, а в меню плеера, который открывается при тестировании ролика)
А подскажите, пожалуйста, как можно обрезать по таймеру?
скажем в течении 5 сек, а иначе придётся набирать с начала.
Division
11.09.2008, 17:36
Допустим завести ещё один массив со временем каждого нажатия. То есть предварительно завести переменную time_array и в onKeyDown дописать что-то вроде time_array.push(getTimer());
Потом надо следить чтобы длина time_array не превышала длины секретного слова. Например, можно делать time_array.shift() если длина превысилась. Потом
заменить условие на что-то вроде
if(typed.indexOf(word)!=-1 && (time_array[time_array.length-1]-time_array[0] <= 5000))
5000 - это пять секунд разницы
Могут быть ошибки, но смысл должен быть понятен
Mnilionic
12.09.2008, 00:15
:)
var keyword = "medved";
var interval:Number;
var my_str:String = "";
function Clear(){
trace("clear")
my_str = "";
clearInterval(interval);
}
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
clearInterval(interval);
interval = setInterval(Clear, 5000);
my_str += String.fromCharCode(Key.getAscii());
if (my_str.lastIndexOf(keyword) == -1) {
trace(my_str);
} else {
trace("success");
Clear();
}
}
Key.addListener(keyListener);
Division
12.09.2008, 00:17
Хотя так наверно даже проще (:
ох не люблю я все эти интервалы (:
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.