Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с высотой TextField (http://www.flasher.ru/forum/showthread.php?t=148533)

Cornford 05.01.2011 00:38

Проблема с высотой TextField
 
Здравствуйте!
Уже несколько дней не могу найти решение.
проблема следующая.
В TextField.htmlText по нажатию кнопки выводится информация предворительно загруженная через URLLoader.
Далее мне надо чтобы высота текстового поля была равна высоте текста загруженного в него.
За это дело как я понял отвечает TextField.autoSize = TextFieldAutoSize.CENTER
когда я задаю этот параметр то при повторном нажатии кнопки загружающей контент выходит ошибка
Код:

[Fault] exception, information=ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
если сделать TextField.autoSize = TextFieldAutoSize.NONE,
то такой ошибки не возникает.
Может быть кото сталкивался с подобной проблемой?

tsarapkabel 05.01.2011 01:19

TextFieldAutoSize в любом случае расширяет текстовое поле вправо-вниз (LEFT), влево-вниз (RIGHT), и равномерно [вправо/влево]-вниз (CENTER).

Покажите код.

Cornford 05.01.2011 12:40

Код AS3:

internal var contentViewer:TextField = new TextField();
internal var contentFormat:TextFormat = new TextFormat();
internal var urlReqMain:URLRequest = new URLRequest('content/main.txt');
internal var urlLoadMain:URLLoader = new URLLoader();
internal var mainText:String;
......................................
contentViewer.x = bodyBox.x + 15;
contentViewer.y = bodyBox.y + 15;
contentViewer.height = 810;
contentViewer.width = 738;
contentViewer.border = true;
contentFormat.size = 20;
contentViewer.condenseWhite=true;
contentViewer.multiline = true;
contentFormat.font = 'Calibri';
contentFormat.leading = -3;
contentViewer.wordWrap = true;
contentViewer.autoSize = TextFieldAutoSize.CENTER;
addChild(contentViewer);
.................................
urlLoadMain.load(urlReqMain);
urlLoadMain.addEventListener(Event.COMPLETE, urlLoadMainComplete);
.
.
.
private function urlLoadMainComplete(event:Event):void {
        mainText = urlLoadMain.data;
}
private function button1Clicked(event:Event):void {
    contentViewer.htmlText = mainText;
    testViewer.htmlText = contentViewer.htmlText;
 
}

код примерно такой. скопировал только часть которая соответствует описанной проблеме

mikhailk 05.01.2011 13:09

этот код рабочий
я закомментил необъявленные bodyBox и testViewer и все отработало:

Код AS3:

internal var contentViewer:TextField = new TextField();
internal var contentFormat:TextFormat = new TextFormat();
internal var urlReqMain:URLRequest = new URLRequest('test.txt');
internal var urlLoadMain:URLLoader = new URLLoader();
internal var mainText:String;
//contentViewer.x = bodyBox.x + 15;
//contentViewer.y = bodyBox.y + 15;
contentViewer.height = 810;
contentViewer.width = 738;
contentViewer.border = true;
contentFormat.size = 20;
contentViewer.condenseWhite=true;
contentViewer.multiline = true;
contentFormat.font = 'Calibri';
contentFormat.leading = -3;
contentViewer.wordWrap = true;
contentViewer.autoSize = TextFieldAutoSize.CENTER;
addChild(contentViewer);
//.................................
urlLoadMain.load(urlReqMain);
urlLoadMain.addEventListener(Event.COMPLETE, urlLoadMainComplete);
 
button1.addEventListener(MouseEvent.CLICK,button1Clicked);
//.
//.
//.
function urlLoadMainComplete(event:Event):void {
        mainText = urlLoadMain.data;
}
function button1Clicked(event:Event):void {
    contentViewer.htmlText = mainText;
        //testViewer.htmlText = contentViewer.htmlText;
 
}

ищите ошибку в другом

Cornford 05.01.2011 22:22

сделал сам тоже самое т.е. создал новый проект и написал только эти строчки. выходит та же самая ошибка.

mikhailk 05.01.2011 23:35

Вложений: 1
мой вариант работает ))

Cornford 06.01.2011 00:43

Да, действительно ваш вариант работает, и более того и мой вариант работает если читать ваш txt файл. Похоже проблема выходит из-за картинок которые грузятся вместе с текстом.
Да дело в этом как понял. И пишет он чтото типа что дисплей объект должен быть потомком вызывающего его чегото. не особо понимаю что это значит, но может быть в TextField есть какиенибудь методы чтобы картинку както подругому грузить?


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

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