Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Неправильный перенос слов в текстовом поле (http://www.flasher.ru/forum/showthread.php?t=179934)

Fartoviy_Spec 24.05.2012 12:07

Неправильный перенос слов в текстовом поле
 
Проблема такая, вставляю из библиотеке клип vp1 в текстовое поле, а за ним идет текст, первая строка нормально с 50 по х начинает, а которые переносятся дальше строчки с начала, а надо, чтобы перенос слов происходил так же с отступом 50. Подскажите как сделать.
Код AS3:

var scrol:TextField = new TextField();
scrol.width = 270;
scrol.height = 300;
scrol.multiline = true;
scrol.wordWrap = true;
scrol.x = 50;
scrol.y = 50;
 
var format:TextFormat = new TextFormat();
format.font = "Arial";
format.size = 14;
format.tabStops = [0,50];
scrol.defaultTextFormat = format;
 
var vopr:String = '<img src=' + '\'' + 'vp' + String(1) + '\'' + '>';
scrol.htmlText =  vopr +'\t'+ 'dfddddddddddddd ddddddddddddddddddddd  ddddddddddddddddddddddddd ddddddddddddddddddddddddddd dddddddddddddddddddddddddddd' + '\n' + '\n';
addChild(scrol);


Wolsh 24.05.2012 12:21

var vopr:String = '<img hspace="50" src=' + '\'' + 'vp' + String(1) + '\'' + '>';

Fartoviy_Spec 24.05.2012 12:27

Отуступ текста должен быть, а не клипа, в начале клип стоит, а потом текст

Wolsh 24.05.2012 13:11

А.
Ну тогда про табы — один ставите, один и получаете.

Код AS3:

.tabStops = [0,50];

Код:

+'\tdfddddddddddddd \n\tddddddddddddddddddddd \n\tddddddddddddddddddddddddd \n\tddddddddddddddddddddddddddd \n\tdddddddddddddddddddddddddddd' + '\n' + '\n';
Но можно и проще:
Код AS3:

format.blockIndent = 50;


Fartoviy_Spec 24.05.2012 14:29

не помогает, все равно обтекание остается

Wolsh 24.05.2012 14:53

Ну значит я не понимаю вашу задачу.
У меня все "помогает" получить конструкцию: в топ-лефте текстового поля картинка, справа от нее строки текста, каждая строка отступает от картинки на 50 рх. Так я понял вашу задачу и получаю это как табами, так и просто отступом блока в ТекстФормате.

Fartoviy_Spec 24.05.2012 16:42

Можете исходник выложить?

Wolsh 24.05.2012 16:52

Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;
 
        public class Main extends Sprite
        {
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                        stage.align = StageAlign.TOP_LEFT;
                        stage.scaleMode = StageScaleMode.NO_SCALE;
                        // entry point
                        var _txt:TextField = new TextField();
                        var format:TextFormat = new TextFormat("Arial", 12, 0x666655);
                        format.blockIndent = 50;
                        _txt.defaultTextFormat = format;
                        _txt.autoSize = TextFieldAutoSize.LEFT;
                        _txt.multiline = true;
                        _txt.wordWrap = true;
                        _txt.border = true;
                        _txt.width = 500;
                        this.addChild(_txt);
                        _txt.x = 100;
                        _txt.y = 100;
 
                        _txt.htmlText = "<img src='genpodReverse.swf'/>"  +'dfddddddddddddd ddddddddddddddddddddd ddddddddddddddddddddddddd ddddddddddddddddddddddddddd dddddddddddddddddddddddddddd' + '\n' + '\n'
                }
        }
}

Ссылку на клип только свою вставьте)

Fartoviy_Spec 24.05.2012 17:21

Вложений: 1
Просто смещается обтекание, но оно не исчезает

Вложение 28001

Wolsh 24.05.2012 17:56

А откуда у Вас информация, что обтекание должно исчезнуть?
Это внутренняя реализация текстфилда. Все, что не текст, ведет себя по законам, не документированным в хелпе. Там много всяких странных фишек, но обтекание это в любой логике единственный автоматический способ компоновки текста и изображений. Если Вам не нужна компоновка, а надо отдельно картинку, отдельно ровный текст — то зачем пихать картинку в текстфилд?
Хотите под картинкой отступ не 50, а 100 пикселей – так и указывайте не 50, а 100. Текстфилд не обладает телепатией. Он делает ровно то, что ему явно приказали — отступ текста от границы в 50 пикселей. Там, где картинки нет, граница — это граница текстфилда.

Fartoviy_Spec 24.05.2012 18:16

format.indent переносит первый абзац, format.blockIndent переносит блок
format.tabStops тоже переносит начало абзаца в зависимоти от элемента массива, а нельзя ли так же tabStops ом перенести целый блок?

Wolsh 24.05.2012 19:22

Нет никакого целого блока, раз есть картинка.
Можно только назначить разный отступ для строк ЗА картинкой и строк ПОД картинкой.
Для этого надо создать второй формат и назначить разные форматы (с разным blockIndent) этим двум частям текста. Естественно, для этого надо знать, в каком месте тексты "разделяются".


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

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