PDA

Просмотр полной версии : Помогите сделать "бегущую строку"


Люциф
19.07.2007, 09:42
Мне нужно сделать "бегущую строку", типа той, что на телеканале Россия в программе "Доброе утро" или что-то типа того (программа идёт по утрам). Сабж: строка выгядит примерно так:
________________________________________________
| КАТЕГОРИЯ1 | C Т Р О К А С Н О В О С Т Ь Ю №1 |

Затем новость меняется, правая часть плавно переворачивется и становится вот что:
__________________________________________________ __________
| КАТЕГОРИЯ1 | C Т Р О К А С Н О В О С Т Ь Ю №2 |

Затем меняется категория и идут другие новости:
__________________________________________________ __________
| КАТЕГОРИЯ2 | C Т Р О К А С Н О В О С Т Ь Ю №1 |

Типа:
__________________________________________________ __________
| СПОРТ | АРГЕНТИНА - ЯМАЙКА 5:0 | ->
__________________________________________________ __________
-> | СПОРТ | БРАЗИЛИЯ - ШВЕЦИЯ 3:1 | ->
__________________________________________________ _________
| ПОЛИТИКА | США ... |


Извините, что криво нарисовал)) надеюсь, ясно? Хотя бы в общих чертах.

Да, текст берётся из файла типа .txt и имеет такой вид:

КАТЕРГОРИЯ1 НОВОСТЬ1
КАТЕРГОРИЯ1 НОВОСТЬ2
КАТЕРГОРИЯ1 НОВОСТЬ3
КАТЕРГОРИЯ2 НОВОСТЬ1
КАТЕРГОРИЯ2 НОВОСТЬ2
и т.д.

etc
19.07.2007, 10:04
И что у вас конкретно не получается в реализации?

Люциф
19.07.2007, 10:08
Я недавно начал изучение и только прочитал самоучитель Панкратовой, как мне дали это задание. Не могли бы вы подсказать, с какой стороны подступиться к решению задачи, как оно будет выглядеть?

CorC
19.07.2007, 10:32
Брать из файла LoadVars
Массив Array
Поле текстовое TextField
Бег строки onEnterFrame
Координаты mc._x

Про всё это можно почитать в хелпе или в книжке, дерзайте.

Люциф
19.07.2007, 10:44
Брать из файла LoadVars
Массив Array
Поле текстовое TextField
Бег строки onEnterFrame
Координаты mc._x

Про всё это можно почитать в хелпе или в книжке, дерзайте.
Значит построчно:
Брать из файла LoadVars -> открыть файл, да? КАК?? Я читал книгу Панкратовой издательства Питер, но там это не описывалось.
Массив Array -> массив, куда кладём текст, да?
Поле текстовое TextField -> туда будем класть массив?
Бег строки onEnterFrame -> а это что?))
Координаты mc._x -> координаты смещения строки?
Ну я и ламер, наверное))))

CorC
19.07.2007, 10:54
Я вам написал, что смотреть надо в хелпе.
Если лень обращайтесь в вакансии там за пару сотен баксов ваша проблема решится :)
LoadVars http://livedocs.adobe.com/flash/mx2004/main_7_2/00001408.html
Array http://livedocs.adobe.com/flash/mx2004/main_7_2/00001191.html
TextField http://livedocs.adobe.com/flash/mx2004/main_7_2/00001769.html
onEnterFrame http://livedocs.adobe.com/flash/mx2004/main_7_2/00001530.html

Люциф
19.07.2007, 12:45
А шо, если так реализовать:
открываем файл(.txt);
до первого пробела считываем строку (ЗАГОЛОВОК);
после пробела считываем втору строку (НОВОСТЬ);

Пока мне нужно только это.

aksios
19.07.2007, 12:58
А шо, если так реализовать:
открываем файл(.txt);
до первого пробела считываем строку (ЗАГОЛОВОК);
после пробела считываем втору строку (НОВОСТЬ);
Пока мне нужно только это.
А что, в самоучителе Панкратовой описано, как это сделать флешем?
Мой совет: откажитесь от задания и читайте нормальные книги по флешу.
:rtfm:

Люциф
20.07.2007, 07:59
Если бы было написано, я бы Вас не беспокоил.:umnik2: Ну что, никак нельзя флэшем файл открыть?

Kikasso
20.07.2007, 09:42
На многие вопросы ответы есть в хелпе. Если с англицким плохо, тут на форуме скачайте переведеный.
То, что вам советуют, скопируйте в строку поиска.
Строку лучше бить не по пробелу (в заголовке лекго может пробел оказаться) а по табу.
А еще лучше XML заюзать.

Люциф
20.07.2007, 10:27
Я уже искал переведеный, но ни нашол((( Может, ссылочкой подскажешь?;)
Да понятно (наверное), что лучше XML юзать, но от меня требуют TXT...

Cкептик
20.07.2007, 14:02
Русский HELP по FLASH:
http://www.flasher.ru/forum/showthread.php?t=93300

Aisaid
20.07.2007, 14:07
читай тут:

http://www.flasher.ru/forum/showthread.php?t=83788
http://www.flasher.ru/forum/showthread.php?t=84103

удачи

Люциф
24.07.2007, 07:16
Как можно считать строку из файла по определённому критерию?

sport* argentina
sport* brazilia
politics* germany
politics* germany

Допустим, до звёздочки.

etc
24.07.2007, 07:37
Прочитать сначала весь файл, потом выцепить нужное.

Люциф
24.07.2007, 07:52
то есть, в функции onLoad? Циклом?

etc
24.07.2007, 07:54
В onData можно. Цикл не знаю, зачем. Можно просто построчно разбить в массив тем же split…

Люциф
24.07.2007, 08:06
Вот по поводу split у меня вопрос: что это такое и как эти воспользоваться? В хэлпе не нашел(
Вот у меня ест массив ar, которому я присваиваю значение файла:

lv.load("input.txt");
lv.onLoad = function() {
ar = (lv.q);
};

Далее нужно воспользоваться split? DarkLight в одной из тем упоминал, что можно сделать "ей split("\r")". Это как?

etc
24.07.2007, 08:20
В хелпе это есть (http://livedocs.adobe.com/flash/9.0/main/00002166.html).

Люциф
24.07.2007, 08:45
А как разбивать построчно, т.е.
0
sport* argentina
1
sport* brazilia
2
politics* germany
3
politics* germany

Люциф
24.07.2007, 09:15
Строку лучше бить не по пробелу (в заголовке лекго может пробел оказаться) а по табу.
А еще лучше XML заюзать.
принял к сведению. А как по табу бить?))

CorC
24.07.2007, 09:58
Вы на какой планете родились?
По табу, это табуляцией, но лучше совсем незнакомым символом, с кодом скажем 215

Люциф
24.07.2007, 10:09
Как это должно выглядеть?

CorC
24.07.2007, 10:14
1 строка╫2 строка╫3 строка

etc
24.07.2007, 10:15
Как это должно выглядеть?
А подумать? Мануал там почитать… Делайте уже что-нибудь самостоятельно!

Kikasso
24.07.2007, 13:52
Таб - '\t'

Люциф
25.07.2007, 06:35
Я сделал по ентеру. Всё нормально. Осталось только задержку прописать.

var lv:LoadVars = new LoadVars();
lv.load("input.txt");
lv.onLoad = function() {
ar = lv.q.split(chr(13));//разбиваем по строкам
for (var i = 0; i < ar.length; i++){
cn = ar[i].split(chr(42));//разбиваем по звёздочкам
caption = cn[0];//категория. Он почему-то не отображается.
news = cn[1];//новость
}
};

Может, какой из сплитов виноват?

CorC
25.07.2007, 09:49
Вы кажется на плюс нарываетесь. Собирайте ваши посты в один.
А код на первый звгляд правильный, может просто вы тэйсите не дождавшись загрузки.
Да и на всякий случай напишите onLoad выше load :)

Люциф
25.07.2007, 09:58
Виноват, исправлюсь.
Всё равно не работает. Ну и бог с ним. Мне сказали положить на .txt и делать XML))

Люциф
27.07.2007, 09:50
Я правильно открываю XML или нет:
var sXML:XML = new XML();
sXML.load("input.xml");
sXML.onLoad = function(success:Boolean) {
if (succes) {
var xnCaption:XMLNode = sXML.firstChild;
//caption
var xnNews:XMLNode = sXML.lastChild;
//news
trace(xnCaption);
trace(xnNews);
}else{trace("Error!")};
};
У меня постоянно Error "горит"! Делаю всё "по книжке"!

CorC
27.07.2007, 10:03
нет "succes" - буква пропущена
и вместо sXML.first лучше this.first
и вы пренебрегли моим советом поместить onLoad выше load, может тут ничего страшного, но иногда бывает смертельно :)

etc
27.07.2007, 10:06
Нужно внимательно перепечатывать. В данном случае, ошибка в названии, не «succes», а «success».

Люциф
27.07.2007, 10:06
и вместо sXML.first лучше this.first
А это где вы у меня увидели?!

<?xml version="1.0" encoding="windows-1251" ?>
<!DOCTYPE news_stripe (View Source for full doctype...)>
<stripe font="white">
<text>
<caption>sport sport politics politics gdhfhdfsjdgfjhsdg</caption>
<news>argetina brazilia germany usa shgdsjdgfjsdfsgjhgsdfjh</news>
</text>
</stripe>

Как мне выцепить из текста строчки между тегами <caption> и <news>? firstChild или nextSibling?

etc
27.07.2007, 10:08
А это где вы у меня увидели?!
Вместо sXML.firstChild и т.п. внутри onLoad надо писать this.firstChild.

Люциф
27.07.2007, 10:15
То есть:

var sXML:XML = new XML();
sXML.load("input.xml");
sXML.onLoad = function(success:Boolean) {
if (succes) {
var xnCaption:XMLNode = this.firsChild;
//caption
var xnNews:XMLNode = sXML.lastChild;
//news
trace(xnCaption);
trace(xnNews);
}else{trace("Error!")};
};
Тогда null выдаётся

etc
27.07.2007, 10:20
Я же написал «и т.п.», это значит, что вместо sXML внутри onLoad должно быть this. Везде.
Кроме того, вы так и не исправили ошибку в названии переменной, в условии.

CorC
27.07.2007, 10:27
Как мне выцепить из текста строчки между тегами <caption> и <news>? firstChild или nextSibling?
нужно в Ноде еще несколько раз использовать firstChild, sibling тут не поможет

etc
27.07.2007, 10:29
А ещё надо ignoreWhite включить.

Люциф
27.07.2007, 10:30
Я же написал «и т.п.», это значит, что вместо sXML внутри onLoad должно быть this. Везде.
Почему?

etc
27.07.2007, 10:31
Потому что не надо лишний раз обращаться к внешней переменной. Не факт, что она будет существовать.

Люциф
27.07.2007, 10:37
Ясно.
<?xml version="1.0" encoding="windows-1251" ?>
<!DOCTYPE news_stripe (View Source for full doctype...)>
- <stripe font="white">
<caption>sport sport politics politics gdhfhdfsjdgfjhsdg</caption>
<news>argetina brazilia germany usa shgdsjdgfjsdfsgjhgsdfjh</news>
</stripe>
Я хочу получить дочерние узлы <caption> и <news>, но xnCaption и xnNews равны null. "Ничего не понимаю!", как говаривал один из братьев пилотов!=)

etc
27.07.2007, 10:42
См. пост #38.

CorC
27.07.2007, 10:43
2Автор, вы специально дураком прикидываетесь и доводите нас до нетерпения?
Мы советуем, а вы все равно по своему делаете, кто потом вамм помогать будет?
Думаю, что дальше бесполезно тут что то отвечать, надо закрываться.
Кстати про то как парсить ХМЛ много где написано.

Kikasso
27.07.2007, 11:31
<?xml version="1.0" encoding="windows-1251" ?>
Что эта модная кодировка делает на _пятой_ странице темы?

ошибка в названии, не «succes», а «success».
Стоит вообще писать «ok», букв меньше и рядом расположены.

Люциф
27.07.2007, 12:18
Что эта модная кодировка делает на _пятой_ странице темы?
Что-что, стоит! В книге написано везде, ну вот я и поставил. Шоб было.

Насчёт дураков: мне не понятно, вот я и спрашиваю, и переспрашиваю до тех пор, пока мне понятно не будет. Могли бы яснее и подробней отвечать.

Kikasso
27.07.2007, 12:47
Что-что, стоит! В книге написано везде, ну вот я и поставил. Шоб было..
Что, прям так и написано? Юзай виндовскую кодировку, будет счастье?
Даю намек: utf-8

А кто там где в вашем xml, есть debug->list variables и control->debug movie.

upd: или вы про 'ok' ? Этож название переменной. Как хочу, так и называю.

Люциф
27.07.2007, 12:51
Да я про кодировку. в книге так и написано. Везде.

etc
27.07.2007, 12:54
Книга либо старая, либо плохая. Необходимо использовать utf-8 кодировку.

Люциф
30.07.2007, 07:54
Во флэше нет никакой задержки по типу delay?

Kikasso
30.07.2007, 08:14
setInterval, setTimeout -> поиск по форуму

Люциф
30.07.2007, 08:15
Я уже нашёл=)

//цикл выводит категорию
for (var i = 0; i<capt.length; i++) {
caption = capt[i];
}
Как, используя setInterval, можно присваивать переменной caption значение capt каждый раз через десять секунд?

CorC
30.07.2007, 10:16
Если вы нашли про setInterval чего тогда спрашиваете?
http://livedocs.adobe.com/flash/mx2004/main_7_2/00001662.html
Там примеров допраха.

Люциф
30.07.2007, 10:45
вы гений просто!:mad: Есть у меня этот хелп, там я и нашёл. Но примеры тамошние мне не понятны. Как вы предлагаете мне их настроить под выполнение моей задачи мне интересно?

Kikasso
30.07.2007, 11:29
В отдел вакансии. Там настроят. Рожи тут еще корчить будет.

etc
30.07.2007, 13:27
вы гений просто!:mad: Есть у меня этот хелп, там я и нашёл. Но примеры тамошние мне не понятны. Как вы предлагаете мне их настроить под выполнение моей задачи мне интересно?
А вы хотите, чтобы ваш код за вас написали? Представьте, что вам нужно приготовить блюдо. Вы приходите в первый же попавшийся ресторан и трахаете мозг поварам с вопросом, как приготовить это блюдо. Когда они дают вам поваренную книгу, вы смотрите в неё и ничего не понимаете и просите этих самых поваров сварганить полблюда, «а дальше я сам». Это вместо того, чтобы прочитать книгу и сделать самостоятельно. Даже если повора вам приготовят блюдо, вы все равно не будете знать, как его делать.

aksios
30.07.2007, 13:52
За такие мануалы надо линчевать.
Интересно, а поискать за 10 дней на форуме мысль не приходила?
http://www.flasher.ru/forum/search.php?searchid=755459&pp=25
Ох уж эта молодежь... Одни понты.

Люциф
31.07.2007, 07:23
2aksios: Вы дважды гений!!! Именно его я имел в виду. Ох уж это старичьё... Одно брюзжание.

2__etc: Я не хочу, чтобы вы писали ВЕСЬ КОД за меня. Мне не это нужно. Но иногда "лучше один раз увидеть, чем сто раз услышать", то есть что я хочу сказать: вместо растекания "мыслью по древу" и выяснения отношений можно было бы составить пару строк кода про этот долбаный setInterval (всего ПАРУ!!!).

CorC
31.07.2007, 10:00
Мне не это нужно. Но иногда "лучше один раз увидеть, чем сто раз услышать", то есть что я хочу сказать: вместо растекания "мыслью по древу" и выяснения отношений можно было бы составить пару строк кода про этот долбаный setInterval (всего ПАРУ!!!).
Вот мне интересно, в хелпе что я давал нету пары строк кода, примера как использовать setInterval? По моему вы просто над нами измываетесь, поверьте, вам не напишут тут все, что вы захотите, это пишут в разделе "вакансии" и даже, наверное, спорить не будут. Мы даем направление, советуем, а остольное - ваша работа, и никто ее делать за вас не собирается.

Люциф
31.07.2007, 10:13
Эффекта от тех строк на половину строки нормалной не хватит.

etc
31.07.2007, 10:13
Тема закрыта.
Автору предлагается разобраться самостоятельно с тем, что ему требуется, а не требовать этого от других.
Ссылку дали — читайте. Точка. Не нравятся советы — ваши проблемы, тут вам никто ничем не обязан.