【问题标题】:How to add RichEditableText of TextArea using only ActionScript如何仅使用 ActionScript 添加 TextArea 的 RichEditableText
【发布时间】:2011-09-11 23:32:46
【问题描述】:

我花了两天时间试图为这个看似简单的问题找到答案。

我正在开发一个完全使用 ActionScript 构建的 Flex/AIR 应用程序——除了最初自动创建的内容之外,没有任何 MXML。

我需要动态生成某种可编辑的文本字段,并对格式进行高度控制。 TLF 文本字段看起来都很棒,除了我无法让它们中的任何一个在屏幕上呈现。由于应用程序的性质,它们必须位于 MovieClip 中,但由于我读过所有内容都必须是 UIComponent 的后代,因此我使用 UIMovieClip,它是 AddChild 到舞台的。

我快要疯了,整个应用程序都处于危险之中。我不能使用 MXML,互联网上所有 10,000 个示例都是 MXML。我需要动态生成这些。我需要根据数据库数据在一个影片剪辑下生成超过 50 个字段。没有办法使用 MXML 对其进行硬编码。请不要建议更改此设置。 GUI 对此非常具体,而且它是正确的 GUI。

在两天的搜索中,我在 ActionScript 中找不到一个示例,只有 MXML。我已经尝试了所有闻起来像示例的东西。

我缺少一些明显的通用指针吗?我很乐意发布代码,但这没有意义,因为我经历了很多示例。

有没有人有最简单的代码来仅在 ActionScript 中创建任何类型的 TLF 文本编辑字段(零 MXML),然后将其添加到添加到桌面 AIR 应用程序阶段的 MovieClip 或 UIMovieClip?

我会非常珍惜这里的任何帮助。

最好的,

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    这应该让你开始:

    //create your TextFlow component
    var textFlow:TextFlow = new TextFlow();
    var p:ParagraphElement = new ParagraphElement();
    var span:SpanElement = new SpanElement();
    span.text = "hello world";
    p.addChild(span);
    textFlow.addChild(p);
    
    //create a Sprite that will contain the text
    var textBlock:Sprite = new Sprite();
    //create a controller for compositing
    var controller:ContainerController = new ContainerController(textBlock);
    //set the size of the composition
    controller.setCompositionSize(100, 200);
    //make the controller control the TextFlow object
    textFlow.flowComposer.addController(controller);
    //update the composition
    textFlow.flowComposer.updateAllControllers();
    
    //add to the stage
    addChild(textBlock);
    

    关于尺寸:请务必使用setCompositionSize() 而不是 Sprite 的宽度和高度属性。

    使用addController(),您可以将文本分布在多个 Sprite 上。每个 Sprite 都有自己的 ContainerController,但它们都将共享相同的 FlowComposer 来计算合成。

    警告:像这样使用 TLF 可能非常复杂。上面的代码是让事情运行的最低限度。我不知道您的要求,但您可能会在此过程中遇到其他一些障碍。你必须问自己这个问题:你真的愿意放弃 TextArea 的所有内置功能吗?根据要求,您可能需要花费数月的时间才能把事情做好。您仍然可能需要重新考虑您的架构...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 2017-07-17
      • 1970-01-01
      相关资源
      最近更新 更多