Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Загрузка .txt в TextField (http://www.flasher.ru/forum/showthread.php?t=200111)

Fogflasher 30.05.2013 11:31

Загрузка .txt в TextField
 
Всем гиюр-акбар, чуваки.

Очередной базисный нуб-вопрос.

Написал в DocumentClass'е (Fileloader.as) вот такой код:

Код AS3:

package
{
        import flash.display.*;
        import flash.net.*;
        import flash.events.*;
        import flash.text.*;
        import flash.display.MovieClip;
 
public class Fileloader extends MovieClip
        {
 
                public var urlLoader:URLLoader = new URLLoader();
 
                public var song_dtx:TextField = new TextField();
 
 
                public function Fileloader()
                {
 
                        urlLoader.load(new URLRequest("someFile.txt"));
                        urlLoader.addEventListener(Event.COMPLETE, completeListener);
 
                }
 
 
                private function completeListener(e:Event):void
                {
 
                        trace("urlLoader.data:", "\n" + urlLoader.data);               
                        trace("<<< Load complete! >>>");
 
                        song_dtx.text = urlLoader.data;
 
                }
 
        }
 
}

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

Я думал так, что вот эта строка:
Код AS3:

public var song_dtx:TextField = new TextField();

... создает инстанцию текст-филда автоматически, а строка
Код AS3:

song_dtx.text = urlLoader.data;

... позволит передать значение текстового файла в сам текст-филд.

Однако, почему-то нихрена не происходит.
То есть трэйс конешно отрабатывает, и выдает текст песни...
Но на стэйдже не появляется никакого текст-филда, то есть висит пустой фон и всё.

В чем тут непонимание заключается?

КорДум 30.05.2013 11:34

Код AS3:

addChild(song_dtx);


Fogflasher 30.05.2013 12:19

КорДум, грэйт данке, текст-филд появляется.

Однако текст вставляется обрезанным справа и снизу.
Но этот момент я понял как разрулить, в итоге получилась такая функция:
Код AS3:

                private function completeListener(e:Event):void
                {
 
                        trace("urlLoader.data:", "\n" + urlLoader.data);       
                        trace("<<< Load complete! >>>");
 
                        song_dtx.text = urlLoader.data;
                        song_dtx.autoSize = TextFieldAutoSize.LEFT;
 
                        song_dtx.background = true;
                        song_dtx.backgroundColor = 0xFF00CC;
                        song_dtx.textColor = 0x0000FF;
 
                        song_dtx.border = true;
                        song_dtx.borderColor = 0xCCBBFF;
 
                        song_dtx.x = 10;
                        song_dtx.y = 10;
 
//                        song_dtx.embedFonts = true;
//                        song_dtx.font = 'Tahoma';
 
 
                        addChild(song_dtx);
 
                }

Но всё еще непонятно, а как задать нужный шрифт и размер шрифта?

Странно, в списке свойств текст-филда есть свойство embedFonts, и там мимоходом указано про наличие свойства font, но его самого в списке свойств нету, и указать шрифт, как это в закомментированных строках выше, не получается выдается ошибка.

А свойства, связанного с размером шрифта, вроде бы вообще нет.

Wolsh 30.05.2013 16:01

TextFormat

Fogflasher 30.05.2013 16:22

Wolsh, значит отдельный класс надо как-то прикручивать, понятно, спасибо.

И почему нельзя было всю эту тучу свойств залудить в сам TextField, например, изначально.

Wolsh 30.05.2013 16:50

Чего там "прикручивать"?
Код AS3:

song_dtx.defaultTextFormat = new TextFormat("Arial", 16, 0xFF2266, true);
song_dtx.text = urlLoader.data;

Цитата:

И почему нельзя было..
Потому что текстформат это набор свойств, который удобно хранить, передавать, считывать, сохранять и назначать отдельному фрагменту текста.

in4core 30.05.2013 17:07

Цитата:

Потому что текстформат это набор свойств, который удобно хранить, передавать, считывать, сохранять и назначать отдельному фрагменту текста.
Вообще ни разу не согласен. Достаточно было сделать в tf что-то типа tf.getTextFormat для считывания(хранения) - собственно так и есть, а все свойства вешать на сам textField . tf.size = 30, tf.font = "Arial" было в разы удобнее всем. А если просто свойства надо держать, уж лучше я создам отдельный класс или переменную типа object куда все пихну ( естетвенно ужасный костыль ) = но это все равно удобнее, чем щас. Тем более хранить значения формата - ну оч редко надо, таких задач почти не встает . А сокращения меня вообще убивают, tf vs tf , это если по правилам, а не format и field

Wolsh 30.05.2013 17:34

Цитата:

Достаточно было сделать в tf что-то типа tf.getTextFormat для считывания(хранения) - собственно так и есть
Ага.. и что же должно считываться, когда ты отменил этот ужасный TextFormat? Твой собственный нетипизированный Обжект?))) А для того, чтобы изменить цвет какого-то отдельного слова, сеттер color должен будет стать методом и принимать параметры начала строки, конца строки и цвета? И так же точно для шрифта, для болда, для.. ну ты сам знаешь, сколько там радостей. Ты действительно этого хочешь? Полдня создавать один текстфилд? А десяток?

in4core 31.05.2013 16:31

Цитата:

сеттер color должен будет стать методом и принимать параметры начала строки, конца строки и цвета? И так же точно для шрифта, для болда, для.. ну ты сам знаешь, сколько там радостей. Ты действительно этого хочешь? Полдня создавать один текстфилд? А десяток?
html text же!!

iNils 01.06.2013 22:34

Цитата:

Сообщение от in4core (Сообщение 1135849)
html text же!!

Иииии?


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

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