Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Flash > Не выходит поставить swf-информер на сайт


Автор: Наваждение 7.2.2006, 23:23
Здравствуте! smile
Я очень рада, что вас нашла, т. к у меня образовался такой вопрос:
На сайте http://texxn.narod.ru на главной, Есть свф файл, после надписи "Новости". В поле пишеться что файл который следует использовать как содержимое информера не найден (я лично так толкую надпись undefined). Адрес текстового файла я набирала и полным путем(http://texxn.narod.ru/файл.txt) и относительным. Если набирать полный путь и сохранять флше на компьютере, даже при подключенном ин-ете файл по указаному адресу не находиться и пишеться тот же undefined. В нете точно так же. Если сохранять файл на компьютере с относительным адресом - то получаеться увидеть все. Если с относительным путем (имя.txt) послать в нет - пишет undefined. Как можно это исправить и поставить наконец информер на сайт?! Проверила - флешки на народе работают, значит не в этом суть. Помогите, пожалуйста!
Очень надеюсь на васsmile) smile smile
Добавлено @ 23:25
Вы мне только скажите, и я дам адрес исходника. smile

Автор: AlDev 8.2.2006, 10:52
покажите код.
И при паблишинге поставьте галочку в access network files only.

Автор: Наваждение 8.2.2006, 20:18
Код простой, ставлю на первый кадр флеша:
Код

info=novosti;
loadVariablesNum("http://texxn.narod.ru/novosti.txt",0);


Второй - пустой.
Название поля во флеше - info (прописывала в var).

Код файла novosti.txt:
Код

novosti=Полностью изменился дизайн:
Обновила дизайн сайта, сделала довольно красивой страничку веб-обучения, добавила рассказов. Появился Рабочий Кабинет, сделаный на Флеше. И еще много чего интересного - побродите и найдите!:) И обязательно собщите какой вам из дизайнов больше нравится! Старые дизайны никуда не делись - они в разделе "Дизайны"


А где же эту галочку ставить? Я публиковала двумя вариантами - с помошью FTP Дримвивера и с помошьф файл-менеджера народа.. Галочки не виделаsmile Она принципиальна?..

Автор: AlDev 8.2.2006, 20:45
она при публикации swf во Flash 8 ставится ;)
а событие загрузки вы ловите?

Автор: Наваждение 9.2.2006, 00:16
Хм.. Я флеш недавно изучать началаsmile) Что такое событие
загрузки?smile

Кстати, я может код неправильно копирую, потому не работает?;) Глупость конечно, но.. Я копирую все что начинаеться там на обджект (или на ембед, не помню, на странице написаноsmile ).. Читала что-то про то, что для того что бы некотрые функции в XHTML (именно в таком формате вроде страничка в исходнике) работали, там куча мелких правил - все праильно закрывалось, строчные буквы в тегах и тдsmile Врядли соблюдала и врядли это тут при чемsmile

Нет, главное что на компе работает! А если бы даже ошибка в коде была - все равно должно было бы работатьsmile.. smile
Добавлено @ 00:22
Кстати, у меня стоит 7 флешsmile Не 8.

Автор: AlDev 9.2.2006, 00:59
Цитата(Наваждение @ 9.2.2006, 05:16 Найти цитируемый пост)

Нет, главное что на компе работает! А если бы даже ошибка в коде была - все равно должно было бы работать

Ошибаешься smile В компе у тебя на загрузку время особо не тратится, и получается так, что данные успевают загрузиться до их использования. А в сети ситуация другая. Таким образом можно сделать так:

через LoadVars:
Код

var lv:LoadVars = new LoadVars();
var ths:MovieClip = this;
lv.onLoad = function(success:Boolean):Void
{
  if (success)
  {
    ths['info'] = this['novosti'];
  }
}
lv.load('http://texxn.narod.ru/novosti.txt');

Автор: Наваждение 9.2.2006, 01:43
Цитата(AlDev @ 9.2.2006, 00:59)
Ошибаешься  smile  В компе у тебя на загрузку время особо не тратится, и получается так, что данные успевают загрузиться до их использования. А в сети ситуация другая. Таким образом можно сделать так:

Хмя.. Мне не совсем понятно, что вы мне сказалиsmile Я очень-очень начинающий пользователь.. Объясните, пожалуйста, растолкуйте smile Не понимаю что вы сказали smile

Автор: AlDev 9.2.2006, 09:12
загрузка переменных (как и всего прочего извне) не происходит мгновенно. Метод load() в моем примере, или функция loadVariablesNum в твоем дает команду начать загрузку. Выполнение дальнейшего кода не будет ожидать, пока загрузятся данные. Логичный вопрос: как поймать момент, в который переменные будут загружены. Тут нам на помощь приходят события.
Таким образом, например, загрузка данных с вашей машины происходит практически мгновенно, а загрузка данных из интернета требует некоторого времени на скачивание этих данных. Потому смотрите мой код smile

Автор: Наваждение 9.2.2006, 22:08
Ух, ты! Даже не задумывалась, что все может быть так запутано, когда писала код.. Спасибо большое! Теперь буду смотреть на вещи немного глубже smile А я то привыкла что все делаеься почти без моего в том прямого участия

Хи, но что самое смешное - ситуация не изменилась! Ни на йоту! На компьютере - относительное работает, в нете нет.. А полный нигде не работает smile Какой кошмар... smile

Автор: Наваждение 9.2.2006, 22:24
Кстати, вариант с полным адресом вообще никак не работает! Флешка грузиться минут 7, потом просто пишеться заветое поле с красным крестиком smile

Автор: AlDev 10.2.2006, 06:11
в файле, который вы выложили на сайт проблема с кодировкой.

Запустите такой код и убедитесь:
Код

var lv:LoadVars = new LoadVars();
lv.onLoad = function(success:Boolean):Void
{
  trace ('on load called');
  trace (this);
  trace (this['novosti']);
}
lv.load('http://texxn.narod.ru/novosti.txt');

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)