Как избавиться от полос прокрутки в AS3, Feathers. SCROLL_BAR_DISPLAY_MODE_NONE не работает

У меня есть TextArea, где я распечатываю много чего. Поскольку я печатаю каждое сообщение на новой строке, TextArea нуждается в полосах прокрутки. Я хочу иметь возможность прокручивать, но не хочу видеть полосы прокрутки. Мне не нужны полосы прокрутки, потому что они не подходят моей программе и увеличивают количество вызовов отрисовки.

Я пытался:

SCROLL_BAR_DISPLAY_MODE_NONE

Это избавило от полос прокрутки и прокрутки с ними. При этом я все еще могу прокручивать, но TextArea будет прокручиваться только в том случае, если я добавлю к нему что-то. Так что это не совсем подходит для меня.

Я просто хочу иметь возможность прокручивать без (видимых) полос прокрутки.

Вот мой код TextArea:

private var Text:TextArea = new TextArea();

Text.y = stage.stageHeight - 355;
Text.height = 340;
Text.width = 1320;
Text.x = 15;
Text.isEditable = false;
Text.hasElasticEdges = true;
Text.text = welcomeText;

person Life of Madness    schedule 10.01.2014    source источник


Ответы (1)


отключите "verticalScrollPolicy" и "horizontalScrollPolicy" в текстовой области. x Вы по-прежнему можете выполнять прокрутку с помощью мыши или стрелок, но полосы прокрутки не будут видны. в mxml это выглядит так:

<s:TextArea verticalScrollPolicy="off" horizontalScrollPolicy="off"/>

в сценарии действий это будет выглядеть так:

var text:TextArea = new TextArea();
text.setStyle("verticalScrollPolicy", ScrollPolicy.OFF);
text.setStyle("horizontalScrollPolicy", ScrollPolicy.OFF);

Я использую искровой контейнер TextArea. простой код приложения для тестов выше:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
               creationComplete="onCC()">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <mx:VBox id="container">
        <s:Label text="type here:" />
        <s:TextArea id="source"  width="100" height="50"/>
        <s:Label text="and text will appear in this noneditable field below" />
    </mx:VBox>
    <fx:Script>
        <![CDATA[
            import spark.events.TextOperationEvent;

            import flashx.textLayout.container.ScrollPolicy;
            private function onCC():void{
                var text:TextArea = new TextArea();
                text.width = 100;
                text.height = 50;
                text.editable = false;
                text.setStyle("verticalScrollPolicy", ScrollPolicy.OFF);
                text.setStyle("horizontalScrollPolicy", ScrollPolicy.OFF);
                source.addEventListener(TextOperationEvent.CHANGE, function(e:Event):void{
                    text.text = source.text;
                });
                container.addElement(text);
            }
        ]]>
    </fx:Script>
</s:Application>
person Misiakw    schedule 10.01.2014
comment
Я не могу прокручивать, когда установил значение ВЫКЛ. - person Life of Madness; 10.01.2014
comment
Я пробовал это у себя. если вы нажмете на текстовое поле, чтобы установить его фокус, а затем прокрутите (или используйте стрелки), он будет работать как шарм. но вы также можете сделать видимый скин скроллера - person Misiakw; 10.01.2014
comment
где мне тогда поменять? я изменил textArea.verticalScrollPolicy = ScrollContainer.SCROLL_POLICY_AUTO; в textArea.verticalScrollPolicy = ScrollContainer.SCROLL_POLICY_OFF; в моей теме .as файл - person Life of Madness; 10.01.2014
comment
в моих знаниях вертикальные политики и политики прокрутки - это стили, а не свойства, и мой flash buil; der (4.7) не разрешил мне получить доступ к переменной textArea.verticalScrollPolicy. я делал это с помощью setStyle (verticalScrollPolicy, ScrollPolicy.OFF); я отредактирую свой ответ, чтобы добавить код сценария действия - person Misiakw; 10.01.2014
comment
Я попробовал код ActionScript в flashbuilder, ничего не вышло. Нет setStyle (). - person Life of Madness; 10.01.2014
comment
какую версию Flash Builder и версию SDK вы используете? вы используете Spark TextArea или mx one? Я разместил полный код своего тестового приложения, которое у меня работает, поэтому я немного запутался в вашей ошибке. - person Misiakw; 10.01.2014
comment
Я считаю, что Flashbuilder 4.6, flex 10. я использую Feathers textarea - person Life of Madness; 10.01.2014
comment
моя первая попытка Google преуспела на странице, которая устанавливает scrollBarDisplayMode на SCROLL_BAR_DISPLAY_MODE_NONE. источник: wiki.starling-framework.org/feathers/text-area в Настройка поведения при прокрутке. в соответствии с этим полисы прокрутки должны быть автоматическими. Надеюсь, это поможет - person Misiakw; 10.01.2014