Просмотр полной версии : как узнать, есть ли такая буква в массиве?
Как узнать, есть ли такая буква в массиве?Допустим в input_text вводится буква, а флеш проверяет, есть ли эта буква в массиве, если есть то, например в dinamic_text выводится "буква "такая-то" найдена".
Вот как я пытался написать скрипт (он привязан к кадру), также на этом кадре находится два окна: Input text и Dinamic text (имена я им точно такие же задал).
//вот сам скрипт
var bykvu;
bykvu = ["а","б","в","г","д"] //стоко букв хватит... ;)
_root.onEnterFrame=function() {
if (_root.input_text==_root.bykvu) {
_root.dinamic_text="буква "+_root.input_text+" найдена"
}else{
_root.dinamic_text="буква "+_root.input_text+" не найдена"
}
}
У меня почему-то не работает :(
посмотри так:
var bykvu = ["а", "б", "в", "г", "д"];
input_text.onChanged=function(){
for(var i in bykvu) if (this.text==bykvu[i]) {
trace ("найдена :" + bykvu[i]);
return;
}
trace(this.text+" (не найдена)");
}
можно сделать ассоциативный массив, где индекс есть сама буква. тогда не надо каждый раз делать обход массива.
жаль флеш не поддерживает ассоциативные массивы
жаль флеш не поддерживает ассоциативные массивы
Приехали...
a = new Array ();
a["q"] = 1;
a["w"] = 1;
trace (a["q"]);
trace (a["w"]);
trace (a["e"]);
е... я сильно отстал от жизни) спасибо, iNils
хотя использовать объекты привычнее
хотя использовать объекты привычнее
дело вкуса :) я использую и то и другое.
2Король: флэш реализован так, что поддерживает ТОЛЬКО ассоциативные массивы в общепрограммном смысле слова (во загнул, хехе).
2Fr@ddy: если тебе нужны именно буквы, то вот еще вариант:
isInArray = function (arr, letter) {
return arr.join("").indexOf(letter) == -1 ? false : true
}
но у меня закрадывается большое подозрение что тебе нужно просто посмотреть в хелпе слово restrict.
уууу, вспомнил тему на форуме.... про массивы в том числе что типа все хранится как строки отсюда тормоза. сколько копий сломали тогда...
Отлично! Всё работает! Всем спасибо! :)
Но теперь немного другой вопрос? Возможно сделать так, допустим буква найдена в массиве "bykvu_rus" , а её надо заменить на букву, которая находится в массиве "bykvu_ang" в том же индексе?
KidsKilla
26.08.2005, 16:08
bukvy = {а:"a", б:"b", в:"v" ....... э:"e", ю:"iu", я:"ya"};
trace([ bukvy["a"],bukvy["б"],bukvy["я"] ])
bukvy = {а:"a", б:"b", в:"v" ....... э:"e", ю:"iu", я:"ya"};
trace([ bukvy["a"],bukvy["б"],bukvy["я"] ])
Проверил.Не работает.
bukvy = {а:"a", б:"b", в:"v" ....... э:"e", ю:"iu", я:"ya"};
trace(bukvy.a) - вот так надо
все равно буквы не заменяются.
может, если у тебя (король) всё работает и есть исходник, кинь плиз...
да работает все (и bukvy.a и bukvy["a"]),
глянь
:) урааааа! заработало! :d круто! так я и хотел... спасибо за помощь!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.