Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   старый вопрос (http://www.flasher.ru/forum/showthread.php?t=62505)

andrey2003 29.08.2004 13:31

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

начинающий 29.08.2004 17:03

Код:

password.onChanged = function()
{
        if(password.text=='123')
                trace('Autorized')
}

Да, а что значит в динамическом
поле
? В смысле DynamicText? А разве в поля, кроме Input Text можно вводить текст?

fiot 29.08.2004 17:25

для динамического
 
Код:

var i = 0;
_global.key = "bingo";
_root.createTextField("o",1,0,0,120,20)
arr = ['as', 'add', 'object', 'bingo'];
id = setInterval(function ()
{
        o.text = arr[i++];
        if (i == arr.length) {
                clearInterval(id);
        }
}, 500);
onEnterFrame = function ()
{
        if (o.text == key) {
                trace("i find");
                delete onEnterFrame;
        }
};


fiot 29.08.2004 17:30

для инпут
 
Код:

_global.key = "bingo";
_root.createTextField("o",1,0,0,120,20)
o.type = "input"
o.border = true
o_listener = {}
o_listener.onChanged = function (){
        if (o.text == key){
                trace(';)')       
        o.removeListener(this)
        }       
}
o.addListener(o_listener)


andrey2003 29.08.2004 17:42

доработка
 
спасибо!
насчет Dinamic text я просто перепутал название, я имел ввиду input text ;)
-----------------------------------------------------------------------------------
а как сделать, чтобы из набора слов (я слова буду использовать вместо пароля) выбирались только определенные комбинации ?
сейчас поясню:

к примеру нужно ввести "stop time" ,
а я ввожу "stop this time now"
тоесть если присутствует комбинация слов "stop time",
то чтобы выводилась в другом текстовом поле (динамическом)
надпись "autorization successfull"

PS
а можно, сделать чтобы не считались некоторые символы??
тоесть я пишу stop, а нужно без запятой - stop, чтобы flash`ka
запятую не воспринимала.

fiot 29.08.2004 21:14

:)
 
Код:

String.prototype.search = function()
{
        var $array = [], find = 0;
        $array = this.split(" ");
        for (var item in arguments) {
                for (var $item in $array) {
                        if (arguments[item] == $array[$item]) {
                                ++find;
                        }
                }
        }
        return (find == arguments.length ? true : false);
};

_root.createTextField("o", 1, 0, 0, 120, 20);
o.type = "input";
o.border = true;
// не воспринимает всё что после ^
o.restrict = "^.,";
o_listener = {};
o_listener.onChanged = function()
{
        // TextField.text.search( перечисляем в кавычках через запятую искомые слова )
        if (o.text.search("stop","time")) {
                // то, что произойдёт если найдёт
                _root.createTextField('autorize',2,50,50,200,21)
                autorize.text = "autorization successfull"
                // убираем слушатель, на случай что бы действия не повторялось
                o.removeListener(this);
        }
};
o.addListener(o_listener);


artfla$her 29.08.2004 21:24

str = "блин куча";
your = "Это вообще блин куча слов"

if(your.indexOf(str)>0) trace("Авторизация :), комбинация '"+your.substr(your.indexOf(str), str.length)+"'");

Если я правильно тебя понял )

str - нужная комбинация, your - твой ввод.

А удалить ",", например, можно substr(index1, index2) совместно с indexOf(str, index). Если же тебе надо сделать "умное" удаление, т.е. удалять только в определенном сочетании, то его перед этим надо найти, а потом, зная индекс первого символа, искать и килять ненужные символы.

Цитата:

насчет Dinamic text я просто перепутал название, я имел ввиду input text
А разве любой объект, который может менять свое значение хотя бы через код, не является динамическим? ;) Input тоже ведь динамичен, иначе его назвали бы static-ом, по-моему ))))

fiot 29.08.2004 21:38

Цитата:

Оригинал написал(а) artfla$her
str = "блин куча";
your = "Это вообще блин куча слов"

if(your.indexOf(str)>0) trace("Авторизация :), комбинация '"+your.substr(your.indexOf(str), str.length)+"'");
твой поиск не корректно работает.
задача была такова:
к примеру нужно ввести "stop time" ,
а я ввожу "stop this time now"
тоесть если присутствует комбинация слов "stop time"

Цитата:

А разве любой объект, который может менять свое значение хотя бы через код, не является динамическим? ;) Input тоже ведь динамичен, иначе его назвали бы static-ом, по-моему ))))
я думаю, что он имел ввиду type.

artfla$her 29.08.2004 21:56

Сорри

str = "stop time";
your = "stop this time now"

words = str.split(" ");
count = words.length;
repeat = 0;
for(i=0; i<count; i++){
if(your.indexOf(words[i])>=0) {
repeat++;
}
}

if(repeat==count)trace("ok")

artfla$her 29.08.2004 21:57

Ай, млин, тут даже и count-то никчему)))

fiot 29.08.2004 22:28

Цитата:

Оригинал написал(а) artfla$her
Ай, млин, тут даже и count-то никчему)))
ты вообще видел что я написал 5 постов назад ?

artfla$her 29.08.2004 23:43

:D :D :D :D :D :D :D

Я аж до колик хохотал :D Во я млин дурак :D :D Извини еще раз, просто времени не было читать все ответы, вот я сразу и написал о насущном :D :D :D В следующий раз буду читать :D

fiot 30.08.2004 01:01

ни чё, бывает :)

YuriiZelenev 30.08.2004 05:03

Etovo vpolne hvatit:
 
Код:

createTextField("t",1,0,0,120,20);
createTextField("r",2,120,0,120,20);
t.type="input",t.border=r.border=true;
words=["stop","time"];
tLstn={}
t.addListener(tLstn);
tLstn.onChanged=function(){
        for(var i=0,l=words.length,k;i<l;i++){
                if(t.text.indexOf(words[i])!=-1){
                        k++;
                }
        }
        if(k==2){
                r.text="autorization successfull";
                t.removeListener(this);
        }
}


YuriiZelenev 30.08.2004 06:54

Toje samoe tolko s testom dlya linivih =)))
 
Код:

createTextField("t",1,0,0,120,20);
createTextField("r",2,120,0,120,20);
t.type="input",t.border=r.border=true;
words=["stop","time"];
tLstn={}
t.addListener(tLstn);
chkTxt=function(){
        for(var i=0,l=words.length,k;i<l;i++){
                if(t.text.indexOf(words[i])!=-1){
                        k++;
                }
        }
        if(k==2){
                r.text="autorization successfull";
                t.removeListener(this);
        }

}
tLstn.onChanged=function(){
        chkTxt();
}
///        Test for lazy people:
var type="stop this time now",l=type.length,i=0;
onEnterFrame=function(){
        if(i!=l){
                t.text+=type.charAt(i);
        }else{delete this.onEnterFrame;}
        i++,chkTxt();
}


fiot 30.08.2004 13:03

читаем что пишут выше...
 
YuriiZelenev
и чего ни кто не видит мой пост 29-08-2004 19:14 ???
там ведь, уже всё реализовано!

artfla$her 30.08.2004 13:19

Всем лень читать :) Ладно, тебе-то какая разница - пускай будет куча вариантов поиска ;) Может тут конкурс негласно открыт на лучший код? :D :D :D

fiot 30.08.2004 13:49

Код:

TextField.prototype.check = function()
{
        var $search = [], $find = 0;
        $search = arguments[0].split(" ");
        for (var item in $search) {
                if (this.text.indexOf($search[item]) != -1) {
                        ++$find;
                }
        }
        return ($find == $search.length ? true : false);
};
_root.createTextField("pass", 1, 0, 0, 120, 20);
pass.type = "input";
pass.border = true;
pass.restrict = "^.,";
pass_listener = {};
pass_listener.onChanged = function()
{
        if (pass.check("stop time")) {
                _root.createTextField('autorize', 2, 50, 50, 200, 21);
                autorize.text = "autorization successfull";
                pass.removeListener(this);
        }
};
pass.addListener(pass_listener);

YuriiZelenev
немного дороботал, по твоему способу.

artfla$her
это точно.

andrey2003 31.08.2004 05:30

this is COOL
 
Огромадное всем СПАСИБА, теперь кодов поиска хоть (извиняюсь) Ж**ой ешь! есть из чего выбрать!!!

fiot 31.08.2004 11:50

всегда пожалуйста :)


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

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