Xpoint
   [напомнить пароль]

Вставка текста из внешнего файла

Метки: [без меток]
2006-06-28 16:23:06 [обр] Zilla[досье]

Добрый день!

Возникла огромная проблема. Сразу говорю, что флеш совсем не знаю, так что, может, вопрос совсем глупый. У меня есть ролик или клип, не знаю даже как это называется, куда должен быть вставлен текст - сейчас он просто прописан в коде. Я пыталась его поменять используя loadVariables(). возможно, что-то делаю неправильно, т.к. текст не вставляется.
Вот исходник где текст прописан:

stop();
settore.immagine.inumber = _root.num1;
settore.immagine.idir = _root.dir1;
settore.immagine.folder = "kov";
settore.decorazione.gotoAndStop(settore.immagine.folder);
settore.immagine.testo.gotoAndStop(1);
this.settore.immagine.testo.testo.testo.text="Ковка с древнейших времен служила одним из основных способов обработки металла. Веками оттачивалось мастерство кузнецов-ремесленников, поднимаясь до уровня высокого искусства. Период долгого отсутствия кованого металла в архитектуре и декоративном искусстве сменился настоящим взлетом интереса к ковке в последнее десятилетие."+newline+newline+"Кованый металл сегодня вновь стал популярным атрибутом архитектурного декора, все активнее используется в дизайне интерьеров, и спрос на кованую продукцию неизменно растет."+newline+newline+"Cоединение высоких художественных достоинств кованого металла с новейшими технологиями современного промышленного производства...";
settore.immagine.gotoAndPlay(2);

я же пыталась вставить вместо this.settore.immagine.testo.testo.testo.text, this.settore.immagine.testo.testo.testo.loadVariables("test.txt");

test.txt лежит в той же папке, а в нем только одна запись text=test - не получается.
Подскажите, пожалуйста.

спустя 6 минут [обр] Алексей В. Иванов(276/2861)[досье]
спустя 17 минут [обр] Zilla[досье]
Алексей В. Иванов[досье]
Я почитала, что там написано, попробовала поправить, все равно ничего не получается. Я вот что написала:
stop();
settore.immagine.inumber = _root.num1;
settore.immagine.idir = _root.dir1;
settore.immagine.folder = "kov";
settore.decorazione.gotoAndStop(settore.immagine.folder);
settore.immagine.testo.gotoAndStop(1);
var loader:LoadVars=new LoadVars();
loader.load("test.txt")
loader.onLoad = function() {
   settore.immagine.testo.testo.testo.text = this.text;
}
settore.immagine.gotoAndPlay(2);
спустя 5 минут [обр] Zilla[досье]

Алексей В. Иванов[досье]
И по ходу дела не подгружается файл, т.к. я пробовала просто внутри функции присвоить просто текст - не присваивается, в.то время как после неё присваивается и печатается.

Так не работает:

var loader:LoadVars=new LoadVars();
loader.load("test.txt")
loader.onLoad = function() {
   settore.immagine.testo.testo.testo.text = "123";
}

Так работает:

settore.immagine.testo.testo.testo.text = "123";
спустя 11 минут [обр] Алексей В. Иванов(276/2861)[досье]
Где лежит "test.txt"? Что в нём?
спустя 18 часов [обр] Zilla[досье]
Алексей В. Иванов[досье]
test.txt лежит в в той же папке, что и swf-файл, в нём одна строка text=test
спустя 1 час [обр] Алексей В. Иванов(276/2861)[досье]
Замените var loader:LoadVars=new LoadVars(); на var loader = new LoadVars();, если версия SWF<7.
спустя 3 минуты [обр] Zilla[досье]
Алексей В. Иванов[досье]
Спасибо огромное! Все заработало - текст вставился!
спустя 17 минут [обр] Zilla[досье]

Алексей В. Иванов[досье]
Я немного поспешила. Дело в том, что теперь файл вроде бы подгружается, т.к. хаодит внуть функции, но текст из файла не вставляется.
Так срабатывает:

settore.immagine.inumber = _root.num1;
settore.immagine.idir = _root.dir1;
settore.immagine.folder = "kov";
settore.decorazione.gotoAndStop(settore.immagine.folder);
settore.immagine.testo.gotoAndStop(1);

var loader = new LoadVars(); 
loader.load("test.txt");
loader.onLoad = function() {
  settore.immagine.testo.testo.testo.text = "123";
}
stop();

Так не срабатывает:

settore.immagine.inumber = _root.num1;
settore.immagine.idir = _root.dir1;
settore.immagine.folder = "kov";
settore.decorazione.gotoAndStop(settore.immagine.folder);
settore.immagine.testo.gotoAndStop(1);

var loader = new LoadVars(); 
loader.load("test.txt");
loader.onLoad = function() {
  settore.immagine.testo.testo.testo.text = loader.text;
}
stop();

в файле test.txt одна строчка: text=test

спустя 18 минут [обр] Алексей В. Иванов(276/2861)[досье]
Должно работать. Проверьте еще раз.
Допишите trace(this.text) внутрь loader.onLoad = function( ... ) {, чтобы убедиться, что из файла читается переменная "text".
спустя 3 минуты [обр] Zilla[досье]
Алексей В. Иванов[досье]
сработало после того, как я поменяла loeder.text на this.text. Спасибо большое. Я сейчас еще потестирую и если что еще обращусь. Спасибо!
спустя 2 часа 47 минут [обр] Zilla[досье]
Алексей В. Иванов[досье]
Из файла не забирается кириллица, в то время как текст на английском - нормально. Как можно это исправить?
спустя 7 минут [обр] Алексей В. Иванов(276/2861)[досье]
спустя 3 минуты [обр] Zilla[досье]
Алексей В. Иванов[досье]
Перекодировала в utf-8, всё получилось. Спасибо!
спустя 20 часов [обр] Zilla[досье]
Алексей В. Иванов[досье]
Подскажите, пожалуйста, а есть ли возможность вставлять форматированный текст? То есть чтобы отображались <b>,<i>. Перевод строки я нашла %0A. А вот что с остальным делать - не знаю
спустя 27 минут [обр] Алексей В. Иванов(276/2861)[досье]
Поле должно быть "HTML" (Иконка <> в свойствах текстового поля). Ну и присваивать динамически надо свойство "htmlText", а не "text".
спустя 29 минут [обр] Zilla[досье]
Алексей В. Иванов[досье]
Вы знаете, если я нажимаю <>, то текст, который в тегах, <b> в частности, пропадает. Если же отжимаю, то, соответственно, прописывается <b>текст</b>.
спустя 5 минут [обр] Zilla[досье]
Алексей В. Иванов[досье]
а вот <br> сработал, а <i> тоже не срабатывает.
спустя 20 минут [обр] Алексей В. Иванов(276/2861)[досье]
шрифты, наверное, не включены внутрь ролика (см. embedding)
спустя 31 минуту [обр] Zilla[досье]
Алексей В. Иванов[досье]
Я выбрала don't embed и всё заработало. Спасибо Вам огромное. Вы уже не певый раз меня выручаете и подсказываете, даже если вопросы совсем глупые. Спасибо!
спустя 40 минут [обр] Zilla[досье]
Алексей В. Иванов[досье]
Вы знаете, во флеше при нажатии на маленькую картинку справа вместо текста вставляется картинка. Если я выбираю свойство don't embed, картинка накладывается на текст (текст не исчезает), теги же срабатывают (форматирование есть), если не выбираю опцию don't embed, то форматирование исчезает ( вообще исчезает текст, заключенный в теги ), но исчезает текст под картинкой. Что нужно сделать, чтобы текст форматировался, но и исчезал при появлении картинки на нём. Может, коряво объяснила. Вот страницы, где форматирование есть и нету (нужно нажать ковка, потом любую из картинок справа)
http://art-era.ru/project/adel/ - без форматирования
http://art-era.ru/project/adel1/index.htm - с форматированием, но с наложением текста
спустя 34 минуты [обр] Алексей В. Иванов(276/2861)[досье]
сообщение промодерировано

Вам надо использовать опцию embed.
Включите её на текстовом поле, укажите диапазон включаемых символов (например, русские и латинские буквы, цифры и пунктуация), а после сделаёте еще 2 таких же текстовых поля, но скрытых (вынесите их, например, за предел сцены) с тем же шрифтом, но жирным и наклонным начертаниями. Это заставит флэш включить в готовую SWF-ку три начертания одного шрифта.

P.S. Не надо включать в начало каждого сообщения обращение. В этой теме не так много собеседников :)

спустя 19 минут [обр] Zilla[досье]
Алексей В. Иванов[досье]
У меня получилось выделить жирным и курсивом!!!! Спасибо огромное!!! И еще вопрос. То есть html-теги не передаются без создания дополнительных текстовых полей? Только если стоит галочка don't embeded?
спустя 3 минуты [обр] Алексей В. Иванов(276/2861)[досье]
Всё передаётся. Проблема лишь в том, что Вы хотите отобразить жирным шрифтом, но у флэша его нет, поэтому он просто не отрисовывает текст, начертания которого не знает.
спустя 14 минут [обр] Zilla[досье]
Алексей В. Иванов[досье]
Честно говоря, у меня кроме'<br>' и '<ul><li>' из тегов ничего не отображается. Я вычитала, что еще должен отображаться <font color>,<font face>,<font size>,<u>, но у меня ничего не отображается, а жирное и курсивное начертания стали отображаться после вставки текстовых полей. Центровку вообще не понятно, как делать. Ни <div align=center>, ни <span align="center"> не срабатывают. И ещё вопрос. А как можно в тексте сделать вертикальную полосу прокрутки. Т.к. flash у меня уменьшается в соответствии с размерами окна, текст становится совершенно нечитабельным, вот и хотелось бы добавить полосу прокрутки.
спустя 16 минут [обр] Алексей В. Иванов(276/2861)[досье]
<font> должен работать. Попробуйте закрывать тэги в xhtml-стиле и обязательно расставлять кавычки у атрибутов. Центровка — <p align="center">.
Прокрутка — своими силами или компонент "UIScrollBar" (ему нужно в свойствах указать "путь" к текстовому полю).
спустя 4 дня [обр] Zilla[досье]

Алексей В. Иванов[досье]
Вот взялась опять за прокрутку и опять возникли проблемы. Создать полосу мне не удалось. Вот код, который я пыталась вставить:

stop();
settore.immagine.inumber = _root.num1;
settore.immagine.idir = _root.dir1;
settore.immagine.folder = "kov";
settore.decorazione.gotoAndStop(settore.immagine.folder);
settore.immagine.testo.gotoAndStop(1);
var loader = new LoadVars(); 
loader.load(settore.immagine.idir+"info.txt");
loader.onLoad = function() {
   settore.immagine.testo.testo.testo.createClassObject(mx.controls.UIScrollBar, "my_sb", 20);
     my_sb.setScrollTarget(settore.immagine.testo.testo.testo);
    my_sb.setSize(16, settore.immagine.testo.testo.testo._height);
   settore.immagine.testo.testo.testo.htmlText = this.text;
}

Я вычитала где-то, что сначала нужно посмотреть версию: trace(mx.controls.UIScrollBar.version); Это выдаёт undefined.

спустя 27 минут [обр] Алексей В. Иванов(276/2861)[досье]

У текстового поля нет метода createClassObject. Создавать скроллер надо в MovieClip, который содержит TextField. Т.е. правильно: settore.immagine.testo.testo.createClassObject(mx.controls.UIScrollBar, "my_sb", 20);.
Но Вам было бы проще сразу на сцену вытянуть скролл, чтобы не указывать "target", не позиционировать его и не проставлять ширину/высоту.

P.S. Вы в библиотеку импортировали экземпляр UIScrollBar? (Для этого достаточно вынести его на сцену и сразу удалить)

спустя 46 минут [обр] Zilla[досье]

Алексей В. Иванов[досье]
Я добавила экземпляр UIScrollBar в библиотеку, всё равно не появляется полоса прокрутки. На сцену я её не могу вынести, т.к. тогда она всегда там будет, а мне нужно только в одном слое. Так я тоже писала: settore.immagine.testo.testo.createClassObject(mx.controls.UIScrollBar, "my_sb", 20); Не срабатывает.

trace(mx.controls.UIScrollBar.version); выдаёт undefined

Может, я еще чего не так делаю? Простите, пожалуйста, за большое количество глупых вопросов. Повторюсь, flash совсем не знаю, а сделать нужно.

спустя 1 час 16 минут [обр] Zilla[досье]

Алексей В. Иванов[досье]
Если же я пытаюсь создать scroll внурти testo, то вылезает ошибка
==#**Error** Symbol=Simbolo 170, layer=Livello 1, frame=14:Line 1: Statement must appear within on/onClipEvent handler
     this.createClassObject(mx.controls.UIScrollBar, "test", 20);

Total ActionScript Errors: 1 Reported Errors: 1#==

спустя 20 минут [обр] Алексей В. Иванов(276/2861)[досье]

Для ActionScript 1.0, который Вы используете этот компонент не работает. Включите ActionScript 2.0 во вкладке экспорта флэша. Не думаю, что будут какие-либо проблемы.

Ошибка вылезает из-за того, что Вы написали код в том месте, где его быть не может без специальных "хэндлеров".

P.S. Не включайте обращение к собеседнику. Возможно, кроме меня тут народ хочет помочь, но не встревает из-за того, что Вы ко мне лично обращаетесь :)

спустя 58 минут [обр] Zilla[досье]
Алексей В. Иванов[досье]
Спасибо Вам, огромное! После того, как я поправила настройки публикации всё заработало.
Powered by POEM™ Engine Copyright © 2002-2005