PDA

Просмотр полной версии : поле и кнопка поиска


lukish
24.04.2007, 11:34
Здравствуйте уважаемые флешеры.
Мне необхадимо сделать: на странице есть поле поиска где вводятся слова которые соответствую одной из десяти страниц, кнопка при нажатии которой производится поиск.
Я думаю сделать так:
создать 10 пременных с назначением каждой массива (в массиве те слова которые означают эту страницу)
Как связать текстовое поле с этими массивами.
Ну а с кнопкой просто происходит сравнивание с 10 переменными игото и плу на определённомк кадру.
Правильно ли я думаю.

CorC
25.04.2007, 10:03
SearchButton.onPress=function(){
var Text=SearchBar.text
if(Text!=""){
for(var Word in SrearchArray){
if(Text=SrearchArray[Word]){
KillUser(SrearchArray[Word]);
break;
}
}
}
}

lukish
25.04.2007, 17:53
Уважаемый CorC если не трудно пожалуйсто объясните кто что значит,
малую часть я понял.
Заранее спасибо.
Игорь

CorC
26.04.2007, 10:22
SearchButton - InstanceName кнопки в панели properties, если она конечно не аттачится
SearchBar - текстовое инпут поле (поиск)
SrearchArray - массив ваш со словами
KillUser - функция реакции на найденное слово, например переход на 1245 кадр

iNils
26.04.2007, 17:43
CorC, не ожидал от тебя такого ужасного кода.

Molecula
26.04.2007, 17:51
А такая штука не подойдёт?:

TextSnapshot.findText method

lukish
26.04.2007, 20:47
Ещё раз здравствуйте уважаемые флешеры.
Я не доконца понял предложенный Вами код:

SearchButton - InstanceName кнопки в панели properties, если она конечно не аттачится
SearchBar - текстовое инпут поле (поиск)
SrearchArray - массив ваш со словами
Это я понял


KillUser - функция реакции на найденное слово, например переход на 1245 кадр
Это я не понял, где и как она должна выглядеть

объясните пожалуйсто подробнее, можно вложить исходник, но он 1,5 метра, вообще я хотел бы понять как работает этот код.

Kikasso
26.04.2007, 21:17
KillUser - функция реакции на найденное слово, например переход на 1245 кадр
Это я не понял, где и как она должна выглядеть

А это вы уж сами должны для себя решить и написать. И назовите ее как-нибудь подружественнее.

как вариант:

function KillUser(str) {
trace( str );
}или еще проще:
KillUser = trace;
CorC, ну и шуточки у вас.

lukish
27.04.2007, 20:26
Уважаемые флешеры, никак я немогу сообразить, ничего не получается,помогите пожалуйсто с исходником.
Я начинающий флешер и очени хотел бы понять как эта задача должна работать.
Я буду очень признателен Вам за помощ.
Игорь.

CorC
28.04.2007, 10:18
С 0 никто делать не будет, покажите наработки. Функция KillUser тоже наполовину ваша должна быть, потом поможем...

lukish
28.04.2007, 14:42
Попытался вложить архивный исходник, из за размера не получилось (1,5 метра вместо положенного0,95).
Уважаемые друзъя, я попробую разъеснять что я делаю, а Вы пожалуйсто поправляйте меня по возможности.
1. предложенный Вами код я поставил в специально выделенный для этого слой с одним ключевым кадром на всё протяжение главной линейки.
все отображаемые страницы находятся на 14 кадрах главной линейки, в 8 из которых при поиске слов будем переходить (6-13).
2. Где мне надо создать массивы со словами для каждой из страниц.
3. Кнопку и поле назвал в соответствии с Вашим кодом SearchButton и SearchBar
4. for(var Word in SrearchArray){...... что означает эта строка в Вашем коде.
5. if(Text=SrearchArray["измеритель"]){....... как быть здесь с массивом.
6. KillUser(SrearchArray["измеритель"]);.......что делать и как быть с этой функцией.

CorC
28.04.2007, 14:57
Слов нет http://livedocs.macromedia.com/flash/8/main/00001872.html
З.Ы.: исходник можно урезать, выкинув и заменив графику.

Kikasso
28.04.2007, 16:23
file -> Save And Compact тоже помогает.. И есть всякие файлохранители в сети..

lukish
29.04.2007, 22:10
Уважаемые флешеры, огромное спасибо всем за помощ,
хорошенько изучив for...in полностъю понял предложенный Вами код, всё срабатывает как полоденно.
При дальнейшей разработке появились проблемы, немогу понять в чём дело:
назначил на отдельно слое 8 массивов
SrearchArray6 = new Array("измеритель", "Ф0303.1", "Ф0303.2","Ф0303.3", "Ф0303.4", "Ф0303.5", "0,1мА-1А", "0,01мВ-400В", "температура", "давление", "влажность")
SrearchArray7 = new Array("Е 160", "10мА-5А", "1В-400В","45-65Гц")
....
....
....
SrearchArray11 = new Array("УИ300", "100нА-50А", "1мВ-1кВ","45-450Гц")
SrearchArray12 = new Array("М911", "5-15000А(75мВ)", "60-6000А(60мВ)","200015000А(100мВ)", "100-4000А(150мВ)")
SrearchArray13 = new Array("М660", "1мА-1А", "100мВ-250В")
и в том слое где находится притложенный Вами код тоже написал соответственно:
SearchButton.onPress=function(){
var Text=SearchBar.text
if(Text!=""){
for(var Word in SrearchArray6){
if(Text==SrearchArray6[Word]){
gotoAndStop("Ф0303");
break;
}
}
}
}
SearchButton.onPress=function(){
var Text=SearchBar.text
if(Text!=""){
for(var Word in SrearchArray7){
if(Text==SrearchArray7[Word]){
gotoAndStop("Е160");
break;
}
}
}
}
.....
.....
.....
SearchButton.onPress=function(){
var Text=SearchBar.text
if(Text!=""){
for(var Word in SrearchArray13){
if(Text==SrearchArray13[Word]){
gotoAndStop("М660");
break;
}
}
}
}
После этого всё перестало работать
Что я неправельно сделал?

etc
29.04.2007, 22:16
lukish, у вас уже было одно замечание за неиспользование тегов для кода. Получите второе и имейте ввиду, что третьего уже не будет.

Kikasso
29.04.2007, 23:39
Ошибка может быть в понимании что есть массив и как с ним обращаться.var arr=[ "word1", "word2", "word3", "word4" ];
arr['key1'] = "word5";
arr['key2'] = "word6";
arr['key3'] = "word7";
arr['key4'] = "word8";
trace( "--<test1>-----------------" );
for( var p in arr )trace (p + "(" + typeof(p) + "): " + arr[p]);
trace( "--<test2>-----------------" );
for( var i=0; i<arr.length; i++ )trace (i + "(" + typeof(i) + "): " + arr[i]);
Не называйте переменных с большой буквы, не надо. Что именно не работает?
Кроме того, вы несколько раз сажаете код на одну и ту же кнопку и он каждый раз переписывается.

etc
30.04.2007, 00:54
Не называйте переменных с большой буквы, не надо.
А это заслуга CorC-а :D

lukish
30.04.2007, 08:49
Уважаемые флешеры, огромное спасибо всем за помощ,
всё работает как положенно.
Подскажите пожалуйсто что за замечание за неиспользование тегов , я немогу понять

Kikasso
30.04.2007, 10:01
Отвечаете, "расширенный режим", кнопка с решеткой.
А в чем была затыка?

etc
30.04.2007, 10:20
Подскажите пожалуйсто что за замечание за неиспользование тегов , я немогу понять
http://flasher.ru/forum/showthread.php?t=90042 пункт 3.

lukish
30.04.2007, 22:32
действи для кнопки одно, а внутри после if для каждого массива свой for...in и гото истор ....
По поводу замечания я всё поня,постараюсь не делать ошибки.