Просмотр полной версии : Помогите сделать "бегущую строку"
Мне нужно сделать "бегущую строку", типа той, что на телеканале Россия в программе "Доброе утро" или что-то типа того (программа идёт по утрам). Сабж: строка выгядит примерно так:
________________________________________________
| КАТЕГОРИЯ1 | C Т Р О К А С Н О В О С Т Ь Ю №1 |
Затем новость меняется, правая часть плавно переворачивется и становится вот что:
__________________________________________________ __________
| КАТЕГОРИЯ1 | C Т Р О К А С Н О В О С Т Ь Ю №2 |
Затем меняется категория и идут другие новости:
__________________________________________________ __________
| КАТЕГОРИЯ2 | C Т Р О К А С Н О В О С Т Ь Ю №1 |
Типа:
__________________________________________________ __________
| СПОРТ | АРГЕНТИНА - ЯМАЙКА 5:0 | ->
__________________________________________________ __________
-> | СПОРТ | БРАЗИЛИЯ - ШВЕЦИЯ 3:1 | ->
__________________________________________________ _________
| ПОЛИТИКА | США ... |
Извините, что криво нарисовал)) надеюсь, ясно? Хотя бы в общих чертах.
Да, текст берётся из файла типа .txt и имеет такой вид:
КАТЕРГОРИЯ1 НОВОСТЬ1
КАТЕРГОРИЯ1 НОВОСТЬ2
КАТЕРГОРИЯ1 НОВОСТЬ3
КАТЕРГОРИЯ2 НОВОСТЬ1
КАТЕРГОРИЯ2 НОВОСТЬ2
и т.д.
И что у вас конкретно не получается в реализации?
Я недавно начал изучение и только прочитал самоучитель Панкратовой, как мне дали это задание. Не могли бы вы подсказать, с какой стороны подступиться к решению задачи, как оно будет выглядеть?
Брать из файла LoadVars
Массив Array
Поле текстовое TextField
Бег строки onEnterFrame
Координаты mc._x
Про всё это можно почитать в хелпе или в книжке, дерзайте.
Брать из файла LoadVars
Массив Array
Поле текстовое TextField
Бег строки onEnterFrame
Координаты mc._x
Про всё это можно почитать в хелпе или в книжке, дерзайте.
Значит построчно:
Брать из файла LoadVars -> открыть файл, да? КАК?? Я читал книгу Панкратовой издательства Питер, но там это не описывалось.
Массив Array -> массив, куда кладём текст, да?
Поле текстовое TextField -> туда будем класть массив?
Бег строки onEnterFrame -> а это что?))
Координаты mc._x -> координаты смещения строки?
Ну я и ламер, наверное))))
Я вам написал, что смотреть надо в хелпе.
Если лень обращайтесь в вакансии там за пару сотен баксов ваша проблема решится :)
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
А шо, если так реализовать:
открываем файл(.txt);
до первого пробела считываем строку (ЗАГОЛОВОК);
после пробела считываем втору строку (НОВОСТЬ);
Пока мне нужно только это.
А шо, если так реализовать:
открываем файл(.txt);
до первого пробела считываем строку (ЗАГОЛОВОК);
после пробела считываем втору строку (НОВОСТЬ);
Пока мне нужно только это.
А что, в самоучителе Панкратовой описано, как это сделать флешем?
Мой совет: откажитесь от задания и читайте нормальные книги по флешу.
:rtfm:
Если бы было написано, я бы Вас не беспокоил.:umnik2: Ну что, никак нельзя флэшем файл открыть?
На многие вопросы ответы есть в хелпе. Если с англицким плохо, тут на форуме скачайте переведеный.
То, что вам советуют, скопируйте в строку поиска.
Строку лучше бить не по пробелу (в заголовке лекго может пробел оказаться) а по табу.
А еще лучше XML заюзать.
Я уже искал переведеный, но ни нашол((( Может, ссылочкой подскажешь?;)
Да понятно (наверное), что лучше XML юзать, но от меня требуют TXT...
Русский HELP по FLASH:
http://www.flasher.ru/forum/showthread.php?t=93300
читай тут:
http://www.flasher.ru/forum/showthread.php?t=83788
http://www.flasher.ru/forum/showthread.php?t=84103
удачи
Как можно считать строку из файла по определённому критерию?
sport* argentina
sport* brazilia
politics* germany
politics* germany
Допустим, до звёздочки.
Прочитать сначала весь файл, потом выцепить нужное.
то есть, в функции onLoad? Циклом?
В onData можно. Цикл не знаю, зачем. Можно просто построчно разбить в массив тем же split…
Вот по поводу split у меня вопрос: что это такое и как эти воспользоваться? В хэлпе не нашел(
Вот у меня ест массив ar, которому я присваиваю значение файла:
lv.load("input.txt");
lv.onLoad = function() {
ar = (lv.q);
};
Далее нужно воспользоваться split? DarkLight в одной из тем упоминал, что можно сделать "ей split("\r")". Это как?
В хелпе это есть (http://livedocs.adobe.com/flash/9.0/main/00002166.html).
А как разбивать построчно, т.е.
0
sport* argentina
1
sport* brazilia
2
politics* germany
3
politics* germany
Строку лучше бить не по пробелу (в заголовке лекго может пробел оказаться) а по табу.
А еще лучше XML заюзать.
принял к сведению. А как по табу бить?))
Вы на какой планете родились?
По табу, это табуляцией, но лучше совсем незнакомым символом, с кодом скажем 215
Как это должно выглядеть?
1 строка╫2 строка╫3 строка
Как это должно выглядеть?
А подумать? Мануал там почитать… Делайте уже что-нибудь самостоятельно!
Я сделал по ентеру. Всё нормально. Осталось только задержку прописать.
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];//новость
}
};
Может, какой из сплитов виноват?
Вы кажется на плюс нарываетесь. Собирайте ваши посты в один.
А код на первый звгляд правильный, может просто вы тэйсите не дождавшись загрузки.
Да и на всякий случай напишите onLoad выше load :)
Виноват, исправлюсь.
Всё равно не работает. Ну и бог с ним. Мне сказали положить на .txt и делать XML))
Я правильно открываю 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 "горит"! Делаю всё "по книжке"!
нет "succes" - буква пропущена
и вместо sXML.first лучше this.first
и вы пренебрегли моим советом поместить onLoad выше load, может тут ничего страшного, но иногда бывает смертельно :)
Нужно внимательно перепечатывать. В данном случае, ошибка в названии, не «succes», а «success».
и вместо 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?
А это где вы у меня увидели?!
Вместо sXML.firstChild и т.п. внутри onLoad надо писать this.firstChild.
То есть:
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 выдаётся
Я же написал «и т.п.», это значит, что вместо sXML внутри onLoad должно быть this. Везде.
Кроме того, вы так и не исправили ошибку в названии переменной, в условии.
Как мне выцепить из текста строчки между тегами <caption> и <news>? firstChild или nextSibling?
нужно в Ноде еще несколько раз использовать firstChild, sibling тут не поможет
А ещё надо ignoreWhite включить.
Я же написал «и т.п.», это значит, что вместо sXML внутри onLoad должно быть this. Везде.
Почему?
Потому что не надо лишний раз обращаться к внешней переменной. Не факт, что она будет существовать.
Ясно.
<?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. "Ничего не понимаю!", как говаривал один из братьев пилотов!=)
2Автор, вы специально дураком прикидываетесь и доводите нас до нетерпения?
Мы советуем, а вы все равно по своему делаете, кто потом вамм помогать будет?
Думаю, что дальше бесполезно тут что то отвечать, надо закрываться.
Кстати про то как парсить ХМЛ много где написано.
<?xml version="1.0" encoding="windows-1251" ?>
Что эта модная кодировка делает на _пятой_ странице темы?
ошибка в названии, не «succes», а «success».
Стоит вообще писать «ok», букв меньше и рядом расположены.
Что эта модная кодировка делает на _пятой_ странице темы?
Что-что, стоит! В книге написано везде, ну вот я и поставил. Шоб было.
Насчёт дураков: мне не понятно, вот я и спрашиваю, и переспрашиваю до тех пор, пока мне понятно не будет. Могли бы яснее и подробней отвечать.
Что-что, стоит! В книге написано везде, ну вот я и поставил. Шоб было..
Что, прям так и написано? Юзай виндовскую кодировку, будет счастье?
Даю намек: utf-8
А кто там где в вашем xml, есть debug->list variables и control->debug movie.
upd: или вы про 'ok' ? Этож название переменной. Как хочу, так и называю.
Да я про кодировку. в книге так и написано. Везде.
Книга либо старая, либо плохая. Необходимо использовать utf-8 кодировку.
Во флэше нет никакой задержки по типу delay?
setInterval, setTimeout -> поиск по форуму
Я уже нашёл=)
//цикл выводит категорию
for (var i = 0; i<capt.length; i++) {
caption = capt[i];
}
Как, используя setInterval, можно присваивать переменной caption значение capt каждый раз через десять секунд?
Если вы нашли про setInterval чего тогда спрашиваете?
http://livedocs.adobe.com/flash/mx2004/main_7_2/00001662.html
Там примеров допраха.
вы гений просто!:mad: Есть у меня этот хелп, там я и нашёл. Но примеры тамошние мне не понятны. Как вы предлагаете мне их настроить под выполнение моей задачи мне интересно?
В отдел вакансии. Там настроят. Рожи тут еще корчить будет.
вы гений просто!:mad: Есть у меня этот хелп, там я и нашёл. Но примеры тамошние мне не понятны. Как вы предлагаете мне их настроить под выполнение моей задачи мне интересно?
А вы хотите, чтобы ваш код за вас написали? Представьте, что вам нужно приготовить блюдо. Вы приходите в первый же попавшийся ресторан и трахаете мозг поварам с вопросом, как приготовить это блюдо. Когда они дают вам поваренную книгу, вы смотрите в неё и ничего не понимаете и просите этих самых поваров сварганить полблюда, «а дальше я сам». Это вместо того, чтобы прочитать книгу и сделать самостоятельно. Даже если повора вам приготовят блюдо, вы все равно не будете знать, как его делать.
За такие мануалы надо линчевать.
Интересно, а поискать за 10 дней на форуме мысль не приходила?
http://www.flasher.ru/forum/search.php?searchid=755459&pp=25
Ох уж эта молодежь... Одни понты.
2aksios: Вы дважды гений!!! Именно его я имел в виду. Ох уж это старичьё... Одно брюзжание.
2__etc: Я не хочу, чтобы вы писали ВЕСЬ КОД за меня. Мне не это нужно. Но иногда "лучше один раз увидеть, чем сто раз услышать", то есть что я хочу сказать: вместо растекания "мыслью по древу" и выяснения отношений можно было бы составить пару строк кода про этот долбаный setInterval (всего ПАРУ!!!).
Мне не это нужно. Но иногда "лучше один раз увидеть, чем сто раз услышать", то есть что я хочу сказать: вместо растекания "мыслью по древу" и выяснения отношений можно было бы составить пару строк кода про этот долбаный setInterval (всего ПАРУ!!!).
Вот мне интересно, в хелпе что я давал нету пары строк кода, примера как использовать setInterval? По моему вы просто над нами измываетесь, поверьте, вам не напишут тут все, что вы захотите, это пишут в разделе "вакансии" и даже, наверное, спорить не будут. Мы даем направление, советуем, а остольное - ваша работа, и никто ее делать за вас не собирается.
Эффекта от тех строк на половину строки нормалной не хватит.
Тема закрыта.
Автору предлагается разобраться самостоятельно с тем, что ему требуется, а не требовать этого от других.
Ссылку дали — читайте. Точка. Не нравятся советы — ваши проблемы, тут вам никто ничем не обязан.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.