Просмотр полной версии : ребятушки! глупенький вопрос, спасите - горю
Так вот
я кароче гружу текст. Текст гружу из файла .txt
каждую минуту я этот текст перегружаю (знова прыгаю на 1 кадр в Клипе - и соответственно текст снова перегружается)
так вот! Мне нужно сравнить предыдущий загруженный текст, и следующий, и если текст изменился (хоть на 1 буковку, хоть на чуть чуть) - я должен сделать определенное действие
ну допустим GotoAndPlay (20)
как это сделать?:(( :confused:
загружаю я таким макаром:
var myVars:LoadVars = new LoadVars();
var styles = new TextField.StyleSheet();
var txt_url = "my_text.txt";
var css_url = "htmll_style.css";
myVars.load(txt_url);
myVars.onData = function(content) {
storyText = content;
};
ну и дальше я его с классами вывожу...
Ромастый
04.08.2005, 20:59
Ты сам на свой вопрос и ответил. Сравнивай.
Присваивай предыдущий текст какой-нибудь переменной, а потом
if(переменная!=текущий текст) {gotoAndPlay(кудаХотца)}
перед новой загрузкой текущий текст сохранить в другую переменную, а потом сравнить новый загруженный и старый.
Не работает так
вот смотри
пишу после текста который я написал выше, вот это:
if (txt_url !== txt_oldvar) {
gotoAndPlay(20);
}
тобишь. Сравнил, если он старый - то и фиг с ним
а в конце кода приравниваю вот так
txt_oldvar = txt_url;
типа, теперь эта переменная будет тем текстом, чтобы потом снова сравнить
и кароче после 1 загрузки - он говорит, что да! Они не равны, перепрыгивает на след. текст, а вот потом уже фиг. Постоянно говорит что ничего не изменилось, хотя даже на экране видно что текст выводимый меняется.
сравнивают не
txt_url !== txt_oldvar
а
txt_url != txt_oldvar
не работает всё равно
после рефреша в экслоере 1 раз он ловит что не равны, а потом каждый раз становятся равны, хотя я только что вообще очистил загружаемый текст, на экране появилось "undifined", и при этом он всё равно проглотил и не дернулся. Как буд-то равны.
ну блин. чё делать то:((
может нельзя так тексты сравнивать? может работа с переменными неправильная?
ты наверно сравниваешь до того как текст подгрузился. сначала дождись загрузки.
О! сравнивать нужно не переменную txt_url, а StoryText! в ней то текст походу содержиться
заработало!
Но! почему-то реагирует на изменения, только после второй проверки:) бред:)
тоесть первая проверка - проглатывает, а на вторую орет. Что-то здесь не так:)
а ты два раза проверяешь?
нет
просто - обновился > проверил , не заметил > снова обновился , и вот уже тут заметил и сделал гоу ту
бред какой-то
var myVars:LoadVars = new LoadVars();
var styles = new TextField.StyleSheet();
var txt_url = "new_viruses.txt";
var css_url = "kvwhtml_styles.css";
myVars.load(txt_url);
myVars.onData = function(content) {
storyText = content;
};
// Загружаем таблицу стилей и определяем обработчик события onLoad:
styles.load(css_url);
styles.onLoad = function(ok) {
if (ok) {
// Если таблица стилей загрузилась без ошибок,
// присваиваем ее текстовому полю, затем
// присваиваем ему же текст
viruses_txt.styleSheet = styles;
viruses_txt.text = storyText;
}
};
if (storyText != textOld) {
gotoAndPlay(17);
}
textOld = storyText;
1. Этот код должен быть внутри myVars.onData
if (storyText != textOld) {
gotoAndPlay(17);
}
textOld = storyText;
ничего не изменилось.
Первый раз он пропускает что текст изменился, а на второй раз срабатывает
хотя, абсолютно не понятно - как можно после рефреша браузера, не среагировать на условие, когда textOld вообще еще не обозначен, и равен нулю. И реагирует на это, только на второй проход. (как я уже говорил, каждые 10 сек я прыгаю на 1 кадр и снова создаю текстовые поля, и сравниваю)
Пепец
Балин!!! Вот скотина! прикинь
у меня после скрипта, в следующем кадре пустой кейфрейм стоял
я его удалил, и пепец - скрипт начал срабатывать сразу - тобишь в первый же раз после изменений стал прыгать на 17 кадр
Я В ШОКЕ!
ActionScript пепец, корявый как хрен знает что:(
Ромастый
05.08.2005, 14:30
ActionScript пепец, корявый как хрен знает что:(
Корявыми бывают только руки программиста.
Ты бы лучше исходник положил, потому как код кодом, а что у тебя там с фреймами и их порядком - это задача для телепата.
А мы все-таки флэшеры, а не экстрасенсы. ;)
ну ладно, парни. спасибо. в принципе работает - и работает
просто зону фрейма со скриптом растянул на кадров 20. и всё окей
но блин, чёж так всё сложно то - 2 строчки, а весь извозишься, пока заработает.
пасиба чуваки, большое:)
mr<Xepypr>
05.08.2005, 17:36
Попробуй заменить onData na onLoad.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.