闪存生成器.参数错误: 错误 #2006: 提供的索引超出范围



我在移动应用程序的可滚动列表中添加多个表单输入时遇到问题。

我最多可以添加 110 个条目,这将起作用,但添加更多条目会产生错误"参数错误:错误 #2006:提供的索引超出界限。 逐步浏览代码,我可以看到错误是由 ScrollableStageText 类在尝试运行 updateViewPort() 时产生的,该类绘制一个矩形并将 y 值计算为超过 8192。

我已经创建了这个Flash构建器代码,它将重现错误。

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView"
        initialize="init()">

    <fx:Script>
        <![CDATA[
            import spark.components.FormItem;
            public function init():void
            {
                var fi:FormItem;
                var ti:TextInput;
                for (var i:int = 0; i < 150; i++)
                {
                    fi = new FormItem; 
                    fi.label = i.toString(); 
                    fi.percentWidth=100;
                    ti = new TextInput; 
                    ti.id="item_"+i; 
                    ti.percentWidth=100;
                    ti.text = "";
                    ti.styleName = "ti";
                    fi.addElement(ti);
                    listtest.addElement(fi);
                }
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->     
    </fx:Declarations>
    <s:Scroller width="100%" height="100%" >
        <s:VGroup id="listtest" width="100%" horizontalAlign="center">
            <s:TextInput />
        </s:VGroup> 
    </s:Scroller>
</s:View>

我可以看到这个问题已经在 apache 论坛上提出,但我看不到如何在 flash builder 中按照此处的建议设置 y 值。

有关

此问题的任何帮助都将得到赞赏。

这是一个有趣的错误。

在 Apache 团队提供修复之前,我能想到的唯一解决方案是覆盖 TextInput 类并提供修复,直到错误地尝试将 StageText 实例 y 属性设置为超出接受值的方法。

不幸的是,StageText 是最后一类,所以它不能被覆盖,这本来会更容易,但构图是可能的,并且可能是正确的方式。

最新更新