PDA

Просмотр полной версии : Подгрузка html-текста. Кто не прав: я или Макромедиа?


warlock_black
12.03.2006, 22:04
Итак, вместе с 8-ой версией поставляется пример динамической подгрузки текста. Кто хочет, может посмотреть C:\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\LoadText\formattedText.fla

Пример прекрасно работает с родными файлами. НО! стоит мне заменить его файлы на свои, как вместо html-форматированного текста я лицезрею обычный текст с тегами. То есть тупо не работает это самое html-форматирование. Что за ерунда??
Стоит также сказать, что что-то с текстовым файлом. Т.к. если адрес текстового родной, а css-файл у меня с локалки - тоже все работает.

Оригинал:

__________________________________________

//Handle the UIScrollBar - instance in library
this.createClassObject(mx.controls.UIScrollBar, "my_sb", 20);

// Set the target text field for the scroll bar.
my_sb.setScrollTarget(my_txt);

// Size it to match the text field.
my_sb.setSize(16, my_txt._height);

// Move it next to the text field.
my_sb.move(my_txt._x + my_txt._width, my_txt._y);

//Note: Download the TXT and CSS files to look at their structure. Use the URLs below.
//load text
function loadMyText(evt) {
var loadit_lv:LoadVars = new LoadVars();
loadit_lv.load("http://www.helpexamples.com/flash/text/sampletext.txt");
loadit_lv.onLoad = function(success:Boolean) {
if (success) {
my_txt.text = this.content;
} else {
trace("Could not load text file.");
}
};
}
loadMyText();

//apply stylesheet
var flash_css = new TextField.StyleSheet();
flash_css.load("http://www.helpexamples.com/flash/text/styles.css");
flash_css.onLoad = function(success:Boolean) {
if (success) {
my_txt.styleSheet = flash_css;
} else {
trace("Could not load CSS file.");
}
};

--------------------------------------------------------------


То, что у меня заменено:

loadit_lv.load("123.txt");
и
flash_css.load("styles.css");

Не работает ни в локалке, ни в сети.

warlock_black
12.03.2006, 23:56
Вопрос снимается.
Нужно было писать htmlText. Странно, что Макромедиа ничего об этом не сказало. Я имею ввиду этот конкретный пример.

silin
13.03.2006, 00:18
имхо кривовастый пример:
-где гарантия, что стиль загрузится раньше текста..
-почему форматированный текст присваиваем tf.text, а не htmlText..
-обработчики загрузки определяем после начала загрузки..
я бы так сделал:
this.createClassObject(mx.controls.UIScrollBar, "my_sb", 20);
my_sb.setScrollTarget(my_txt);
my_sb.setSize(16, my_txt._height);
my_sb.move(my_txt._x + my_txt._width, my_txt._y);
//////////////////////////
var flash_css = new TextField.StyleSheet();
flash_css.onLoad = function(success:Boolean) {
loadMyText();
};
flash_css.load("styles.css");
//////////////////////////////
function loadMyText() {
var loadit_lv:LoadVars = new LoadVars();
loadit_lv.onLoad = function(success:Boolean) {
my_txt.styleSheet = flash_css;//apply stylesheet
my_txt.htmlText = this.content;
};
loadit_lv.load("123.txt");
}