【问题标题】:ColorPicker not editable in Form -> FormItemColorPicker 在 Form -> FormItem 中不可编辑
【发布时间】:2011-10-16 19:41:23
【问题描述】:

请注意此问题末尾提到的 WORKAROUND 备注。

基于基于字典的规范,我的一个类以编程方式创建Form

TextInputDatePicker 添加到FormItemss 可以正常工作。

不幸的是,以下代码只是创建了一个彩色矩形,而不是实际的选择器:

ti = new ColorPicker();

ColorPicker( ti ).selectedColor = TAColor( _spec[ key ].value ).color;

以后

formItem.addElement( ti );

表单嵌入在使用

呈现的TitleWindow 组件中
PopUpManager.addPopUp(...);

当添加到 TitleWindow 时,它会正确显示,在 Form->FormItem 内不是:

我无法想象,为什么选择器没有出现。你呢?

解决方法:

如果我将 ColorPicker 包装在 Group 中 一切正常:

ti = new Group();
Group( ti ).addElement( new ColorPicker() );

在这种情况下,ColorPicker 显示为可编辑。

不过,我很高兴知道我最初的解决方案存在什么问题。错误?

【问题讨论】:

  • 这绝对是奇怪的。我尝试以编程方式将 ColorPicker 添加到 spark 表单中,它的功能正是您所解释的……尽管使用 MX 表单,它确实可以正常工作。我强烈怀疑 FocusManager。
  • 正如您所解释的,DateField 或 DatePicker 可以完美运行。 ColorPicker 的源代码包含在 FlashBuilder 4.5.1 中。我不会修补它们。但如果我愿意,FlashBuilder 会重新编译并将它们添加到我的二进制文件中吗?
  • 不,你有源代码,但它不是用来运行你的应用程序的,此外,你不想重新编译整个框架。我建议您扩展组件并尝试对其进行修补。我自己试过了,但找不到任何解决方法......

标签: actionscript-3 apache-flex actionscript flex4 flash-builder


【解决方案1】:

DateField(它像 ColorPicker 一样扩展了 ComboBase)在 spark 表单中的行为正常。但是在 ColorPicker 中,按钮的鼠标按下处理程序永远不会被调用。我认为可能处理鼠标点击的皮肤部分(它必须是一个按钮)的尺寸不正确,结果是它没有显示出来。我得出这个结论是因为在 mx 表单中,ColorPicker 不会像添加到常规显示列表时那样显示...

希望这会有所帮助...

【讨论】:

    【解决方案2】:

    在您提供的代码中,您永远不会将 colorPicker 作为子项添加到任何父容器中;因此,它永远不会出现在任何地方。

    您可能需要执行以下操作:

    formItem.addChild(ti ); 
    

    [或用于 Spark formItem]:

    formItem.addElement(ti ); 
    

    我很困惑为什么你看到的是一个矩形。

    【讨论】:

    • 正确!但事实上,我确实添加了 FormItem。由于这个 FormItem 只是几个之一,代码在上面打印的代码下面。是的,它执行 formItem.addElement();
    猜你喜欢
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 2019-09-28
    • 1970-01-01
    • 2019-04-04
    • 2011-05-25
    相关资源
    最近更新 更多