【问题标题】:Why does adding a Flex DateChooser component throw an index out of bounds error?为什么添加 Flex DateChooser 组件会引发索引越界错误?
【发布时间】:2012-06-10 08:10:07
【问题描述】:

我目前正在处理的 flex 应用程序存在问题。 当我使用“createPopUp”方法打开一个弹出窗口时,我得到了这个索引超出范围的错误消息:

RangeError:提供的索引超出范围。在 mx.core::FTETextField/getLineMetrics()[E:\dev\4.y\frameworks\projects\spark\src\mx\core\FTETextField.as:2169] 在 mx.core::UIFTETextField/get baselinePosition()[E:\dev\4.y\frameworks\projects\spark\src\mx\core\UIFTETextField.as:784] 在 mx.controls::DateChooser/get baselinePosition()[E:\dev\4.y\frameworks\projects\mx\src\mx\controls\DateChooser.as:994] 在 spark.components::Group/get baselinePosition()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:282] 在 spark.layouts::ConstraintLayout/parseElementConstraints()[E:\dev\4.y\frameworks\projects\spark\src\spark\layouts\ConstraintLayout.as:1818] 在 spark.layouts::ConstraintLayout/parseConstraints()[E:\dev\4.y\frameworks\projects\spark\src\spark\layouts\ConstraintLayout.as:1632] 在 spark.layouts::ConstraintLayout/measure()[E:\dev\4.y\frameworks\projects\spark\src\spark\layouts\ConstraintLayout.as:414] 在 spark.components.supportClasses::GroupBase/measure()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\supportClasses\GroupBase.as:1148] 在 mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::measureSizes()[E:\dev\4.y\frameworks\projects\framework\src\mx\core \UIComponent.as:8506] 在 mx.core::UIComponent/validateSize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:8430] 在 spark.components::Group/validateSize()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1012] 在 mx.managers::LayoutManager/validateClient()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:987] 在 mx.managers::PopUpManagerImpl/addPopUp()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:382] 在 mx.managers::PopUpManagerImpl/createPopUp()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:232] 在 mx.managers::PopUpManager$/createPopUp()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\PopUpManager.as:139] 在 意见::AddProjects/loadAddProjectPopUp()[C:\Users\Laura\Web\spidermak\spidermak\src\views\AddProjects.mxml:184] 在 views::AddProjects/___AddProjects_Button1_click()[C:\Users\Laura\Web\spidermak\spidermak\src\views\AddProjects.mxml:838]

这个错误似乎是由我的弹出窗口中的“dateChooser”组件引起的:

<mx:DateChooser id="endDate"/>

当我评论这一行时,不再抛出错误并且弹出窗口正确加载。

这真的很奇怪,因为直到今天早上我才遇到这个问题。在此期间,我所做的只是更改了一些与布局相关的内容,但我看不出与此问题有什么关系。
没看懂……

有人知道如何解决这个问题吗?我需要我的 DateChooser !

谢谢!

劳拉

  • 编辑-

看来问题不是DateChooser本身引起的,而是它周围的FormItem引起的。这是我的代码的样子:

<Form width="100%">
[...]
    <s:HGroup width="100%">
        <s:FormItem label="Date de début">
            <mx:DateChooser id="startDate" 
                    firstDayOfWeek="1"/>
        </s:FormItem>

        <s:FormItem label="Date de fin">
            <mx:DateChooser id="endDate"
                    firstDayOfWeek="1"/>
        </s:FormItem>
    </s:HGroup>
</Form>

如果我删除这两个 FormItem,它会起作用。谁能解释我为什么?谢谢!

【问题讨论】:

    标签: apache-flex flex4


    【解决方案1】:

    尝试将组件包装在 &lt;s:Group&gt; 元素中,即

    <s:FormItem label="Start date">
        <s:Group>
            <mx:DateChooser id="startDate"
                firstDayOfWeek="1" />
        </s:Group>
    </s:FormItem>
    

    显然,这与 Spark 组件的组成有关。大声笑。

    (我遇到了完全相同的问题,在互联网上也找不到任何解决方案!)

    【讨论】:

      【解决方案2】:

      我认为您应该升级到最新的 TLF。这让我想起了 TLF 1.x 中的一个错误。试试 2.x。

      【讨论】:

      • 感谢您的回答弗洛里安。我对 flex 很陌生,不了解 TLF,会对此进行一些研究。如果我的问题与此有关,为什么直到今天才发生?
      • 这就是bug的问题。有些可能只是因为副作用或以特定方式使用功能时出现。
      猜你喜欢
      • 2013-06-06
      • 2014-06-06
      • 2015-03-22
      • 2017-07-26
      • 1970-01-01
      • 2021-11-09
      • 2016-04-26
      相关资源
      最近更新 更多