Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Подгрузка html-текста. Кто не прав: я или Макромедиа? (http://www.flasher.ru/forum/showthread.php?t=76799)

warlock_black 12.03.2006 22:04

Подгрузка html-текста. Кто не прав: я или Макромедиа?
 
Итак, вместе с 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");
}



Часовой пояс GMT +4, время: 01:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.