Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как узнать, есть ли такая буква в массиве? (http://www.flasher.ru/forum/showthread.php?t=68349)

Fr@ddy 25.08.2005 17:31

как узнать, есть ли такая буква в массиве?
 
Как узнать, есть ли такая буква в массиве?Допустим в 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+" не найдена"
}
}

У меня почему-то не работает :(

silin 25.08.2005 17:44

посмотри так:
Код:

var bykvu = ["а", "б", "в", "г", "д"];
input_text.onChanged=function(){
        for(var i in bykvu) if (this.text==bykvu[i]) {
                trace ("найдена :" + bykvu[i]);
                return;
        }
        trace(this.text+" (не найдена)");
}


iNils 25.08.2005 23:21

можно сделать ассоциативный массив, где индекс есть сама буква. тогда не надо каждый раз делать обход массива.

Король 25.08.2005 23:28

жаль флеш не поддерживает ассоциативные массивы

iNils 25.08.2005 23:39

Цитата:

Сообщение от Король
жаль флеш не поддерживает ассоциативные массивы

Приехали...
a = new Array ();
a["q"] = 1;
a["w"] = 1;
trace (a["q"]);
trace (a["w"]);
trace (a["e"]);

Король 26.08.2005 00:02

е... я сильно отстал от жизни) спасибо, iNils
хотя использовать объекты привычнее

iNils 26.08.2005 00:07

Цитата:

Сообщение от король
хотя использовать объекты привычнее

дело вкуса :) я использую и то и другое.

Iv 26.08.2005 02:48

2Король: флэш реализован так, что поддерживает ТОЛЬКО ассоциативные массивы в общепрограммном смысле слова (во загнул, хехе).

2Fr@ddy: если тебе нужны именно буквы, то вот еще вариант:

isInArray = function (arr, letter) {
return arr.join("").indexOf(letter) == -1 ? false : true
}

но у меня закрадывается большое подозрение что тебе нужно просто посмотреть в хелпе слово restrict.

Король 26.08.2005 03:17

BitSky?

iNils 26.08.2005 12:27

уууу, вспомнил тему на форуме.... про массивы в том числе что типа все хранится как строки отсюда тормоза. сколько копий сломали тогда...

Fr@ddy 26.08.2005 15:17

Отлично! Всё работает! Всем спасибо! :)

Но теперь немного другой вопрос? Возможно сделать так, допустим буква найдена в массиве "bykvu_rus" , а её надо заменить на букву, которая находится в массиве "bykvu_ang" в том же индексе?

KidsKilla 26.08.2005 16:08

bukvy = {а:"a", б:"b", в:"v" ....... э:"e", ю:"iu", я:"ya"};
trace([ bukvy["a"],bukvy["б"],bukvy["я"] ])

Fr@ddy 27.08.2005 14:05

Цитата:

Сообщение от KidsKilla
bukvy = {а:"a", б:"b", в:"v" ....... э:"e", ю:"iu", я:"ya"};
trace([ bukvy["a"],bukvy["б"],bukvy["я"] ])

Проверил.Не работает.

Король 27.08.2005 14:51

bukvy = {а:"a", б:"b", в:"v" ....... э:"e", ю:"iu", я:"ya"};
trace(bukvy.a) - вот так надо

Fr@ddy 28.08.2005 10:11

все равно буквы не заменяются.
может, если у тебя (король) всё работает и есть исходник, кинь плиз...

silin 28.08.2005 11:52

Вложений: 1
да работает все (и bukvy.a и bukvy["a"]),
глянь

Fr@ddy 28.08.2005 17:14

:) урааааа! заработало! :d круто! так я и хотел... спасибо за помощь!


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

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