![]() |
|
||||||||||
|
|
|
|||||
|
Здрасьте всем. Теперь у меня новая задача: как лучше сделать систему поиска по флеш ролику?
Поясняю: 100 кадров, в каждом кадре своя инфа, нужно сделать панель куда пользователь вводит слова и нажимает кнопку, с ролик переходи на тот кадр где встречается это слово. у меня такая мысль: сделать через массив и и метки кадра... может есть варианты попроще? по удобней? или .... |
|
|||||
|
слово встречается в каком виде? в мувике или в текстовом блоке?
|
|
|||||
|
в текстовом блоке.
подкиньте какуюнить идею по созданию поиска, обыскала весь форум ни одного исходника, даже приблизительного ;( ну плиз, это важно Последний раз редактировалось etc; 11.06.2007 в 13:31. |
|
|||||
|
делаешь цикл по всем текстовым полям и смотришь их value...
может сработает... |
|
|||||
|
это программирование XML??? я про ето не знаю, может есть идеи по проще?????? или объясните плиз популярней......
|
|
|||||
|
Регистрация: May 2004
Адрес: Kiev
Сообщений: 704
|
Цитата:
Перебираем кадры (с помощью setInterval) и текстовые поля в них (цикл for-in); с помощью indexOf("искомая строка") определяем, есть ли "искомая строка" в тексте; если есть, то останавливаем перебор. А вообще про организацию поиска писали не раз. В поиск ![]() |
|
|||||
|
там нет ничего, я уже второй день штудирую поиск этого форума, сама удивляюсь неужели я первая столкнулась с такой проблемой....
|
|
|||||
|
Регистрация: May 2004
Адрес: Kiev
Сообщений: 704
|
Цитата:
А вот еще про поиск: http://www.flasher.ru/forum/showthre...EF%EE%E8%F1%EA |
|
|||||
|
нет это только AS...
идеально было бы, чтобы все текстовые поля были в одном кадре и в зависимости от условий какие-то видимы, а какие-то нет... тогда проще было бы их перебирать (без перемещения по кадрам и setInterval) |
|
|||||
|
я делаю элкнигу, у меня все в одном клипе, и по кадрово, вот нашла какой то исходник терь бы в нем разобраться... а то че-то в нем слишком много всего? в принципе то что нужно только вот работать не хочет... посмотрите плиз, подскажите в чем проблема???....
on (release)
{
var i,j,n,sn,match,cf,tf,sp,ss_len;
n = s_edit.text;
//-----если длина текста = 0 то выходим-----
if (n.length == 0)
{
return;
}
//-----конец проверки-----
//-----проверяем, если не стоит "с учётом регистра" -----
//все буквы переводим в нижний регистр
if (reg.selected != true)
{
n = n.toLowerCase();
}
//-----конец проверки-----
//-----проверяем, если стоит "продолжить поиск" -----
//то начинаем с текущего слайда иначе с первого
if (cont_s.selected != true)
{
cf = 0;
_root.prev_slide = 1;
}
else
{
cf = _root._currentframe;
_root.prev_slide = _root._currentframe;
}
//-----конец проверки-----
tf = _root._totalframes;
n_a = new Array();
n_a = n.split(" ");
l_n = n_a.length;
//------------------------
for (i=cf; i<tf+1; i++)
{
match = l_n;
sn = _root.SearchArray.pages[i];
if (reg.selected != true)
{
sn = sn.toLowerCase();
}
for (j=0; j<l_n; j++)
{
if (inString(sn,n_a[j]))
{
match = match - 1;
}
}
if (match == 0)
{
stopAllSounds();
_root.gotoAndStop(i+1);
_root.next_slide = i+1;
break;
}
}
//==================
function inString(source_string,sub_string)
{
sp = source_string.indexOf(sub_string,0);
if (sp == -1)
{
return false;
}
ss_len = length(sub_string);
w = (sp == 0);
if (w)
{
if (source_string.substr(ss_len,1)!=" ")
{
return false;
}
else
{
return true;
}
}
w = (sp != 0) && (sp != length(source_string)-length(sub_string))
if (w)
{
if ((source_string.substr(sp-1,1)!=" ") || (source_string.substr(sp+ss_len,1)!=" "))
{
return false;
}
else
{
return true;
}
}
w = (sp == length(source_string)-length(sub_string))
if (w)
{
if (source_string.substr(sp-1,1)!=" ")
{
return false;
}
else
{
return true;
}
}
return false;
}
}
Последний раз редактировалось Assin; 11.06.2007 в 16:06. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|