【问题标题】:fl.controls.TextArea not scrolling all the way downfl.controls.TextArea 没有一直向下滚动
【发布时间】:2011-08-13 04:04:55
【问题描述】:

我有一个 TextArea 控件,并且一直向下滑动滚动条始终不会显示所有文本。

我认为这与我更改字体有关,因为我注意到当我执行 setStyle 更改 textFormat 样式时,textHeight 值没有改变。

有没有人遇到过这样的事情?我至少可以访问 TextArea 源以便我可以解决这个问题吗?或者有没有办法不知道,将其子类化并轻松修复它?

您可以在这里查看:http://www.climatizacionuponor.com/newsletters/abril-2011/#/FeriaBtn 如果您看到滚动的文字,您可以尝试一直向下滚动,然后选择文字并拉得更远,有时它会显示更多文字。对不起西班牙语。

这是一个通常无法一直向下滚动的文本示例:

<p>Este accesorio es la evolución del antiguo sistema press fitting y resuelve los problemas que éste último presentaba. Mediante un anillo fabricado en acero al carbono que le proporciona un efecto memoria y gracias al indicador de unión, realiza el apriete por si solo sin necesidad de herramientas, garantizando unos ensamblajes profesionales, perfectos y duraderos. Los materiales de última tecnología que componen el nuevo accesorio RTM™ combinan el plástico más ligero con las mejores funciones mecánicas del metal, lo que garantiza una resistencia excepcional a temperaturas extremas. Además, dispone de un efecto de memoria que garantiza la estanqueidad en todo momento gracias a su presión constante de 360º sobre la tubería, que absorbe las variaciones de temperatura en la misma.</p><br><p>El Indicador de unión consta de un Código de Colores, lo que permite saber a simple vista el diámetro de tubería correspondiente, ahorrar tiempo y garantizar una unión más segura y fiable.</p><br><p>Mantener los niveles más altos de seguridad de las instalaciones es uno de los principales objetivos de Uponor, por eso se ha sometido a los productos a las pruebas más duras, llevando la Tecnología RTM™ a las más extremas condiciones de funcionamiento. En palabras de Sergio Toribio, Jefe de Producto de este sistema, “Ha sido un reto ser capaces de desarrollar un dispositivo que pueda funcionar bajo presiones altas, variaciones térmicas, e incluso a grandes movimientos de tracción en las extremidades de las tuberías que, si bien no son habituales en el día a día, suponen un riesgo para cualquier instalación.”</p><br><p>La Tecnología RTM™ resulta idónea tanto para nuevas instalaciones, como para reformas. Además, cumple con los más estrictos estándares de certificación internacional, como es de esperar de uno de los líderes en soluciones de fontanería y calefacción, tanto en Europa, como en América.</p>

这是我的代码:

import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import fl.controls.TextArea;
import fl.controls.UIScrollBar;
import de.mightypirates.megazine.interfaces.IMegaZine;
import de.mightypirates.megazine.interfaces.IPluginManager;
import de.mightypirates.megazine.interfaces.IPage;
import de.mightypirates.megazine.plugins.anchors.IAnchors;

import flash.events.Event;
import flash.events.TextEvent;
import flash.text.TextField;
import fl.events.ComponentEvent;


public class Content extends MovieClip {

    var _mz:IMegaZine;

    public function Content() {
        var tf:TextFormat = new TextFormat();

        tf.font = "FoundryFormSans";
        tf.color = 0x2D2C2E;
        tf.align = TextFormatAlign.JUSTIFY;

        for(var i=0 ; i < numChildren ; i++)
        {
            var ta:TextArea = getChildAt(i) as TextArea;
            if(ta != null)
            {
                ta.setStyle("textFormat", tf);
                ta.editable = false;
                ta.textField.selectable = false;
                ta.verticalScrollBar.maxScrollPosition = ta.textHeight;
                ta.getStyle("textFormat");
            }
        }
    }

}

【问题讨论】:

  • 我意识到我试图在文本加载到组件之前,在父构造函数中进行这些更改。有没有办法在完成后调用一个函数?另外,我还在那个构造函数中设置了 editalbe=false,我仍然可以编辑文本..这是一个问题..
  • 您是使用 TextArea 组件的 UIScrollBar 还是使用自定义滚动条实用程序?
  • 我正在使用 TextArea。我确实重新设置了滚动条,但保留了所有尺寸,我很确定。此外,有时 TextArea 只显示一半的文本,滚动条拇指位于底部,然后当我执行选择文本技巧时,它又回到轨道的一半......

标签: flash actionscript-3 cs4 uicontrol uicomponents


【解决方案1】:

这完全不是我的想法。 我曾经为 flash 构建了一个 telnet 客户端,但有时它不会一直滚动。所以我强迫它下来。

TextField 有一个名为 scrollH 的属性,您可以将其设置为 maxScrollH 以强制 TextField 位于底部。

myTextArea.textField.scrollH = myTextArea.textField.maxScrollH;

编辑:修复了使用 TextArea 后的代码行。

【讨论】:

  • 是的,但这会迫使它一路下降,这可能不是我想要的。我现在确信部分问题是我在设置 textArea 的内容之前运行它
【解决方案2】:

我不确定你的代码是什么样的,但这对我来说很好:

var fmt:TextFormat = ta.textField.getTextFormat(); fmt.font = "Comic Sans MS"; fmt.size = 15; ta.setStyle("textFormat", fmt); ta.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam non sapien lorem. Etiam tincidunt consectetur neque, laoreet hendrerit magna commodo ac.";

【讨论】:

  • 它有时有效,有时无效,它失败了,文本比这更长,带有 html 标记和不同的字体
猜你喜欢
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-22
  • 2023-03-11
  • 2013-01-25
相关资源
最近更新 更多