Actionscript 3 颜色选择器在表单中不可编辑->;FormItem
请注意此问题结尾处提到的解决方法备注 基于基于字典的规范,我的一个类以编程方式创建了一个Actionscript 3 颜色选择器在表单中不可编辑->;FormItem,actionscript-3,apache-flex,actionscript,flex4,flash-builder,Actionscript 3,Apache Flex,Actionscript,Flex4,Flash Builder,请注意此问题结尾处提到的解决方法备注 基于基于字典的规范,我的一个类以编程方式创建了一个表单 将TextInput或DatePicker添加到FormItemss中,效果与预期一致 不幸的是,以下代码只创建了一个彩色矩形,而不是实际的选取器: ti = new ColorPicker(); ColorPicker( ti ).selectedColor = TAColor( _spec[ key ].value ).color; 后来 formItem.addElement( ti );
表单
将TextInput
或DatePicker
添加到FormItems
s中,效果与预期一致
不幸的是,以下代码只创建了一个彩色矩形,而不是实际的选取器:
ti = new ColorPicker();
ColorPicker( ti ).selectedColor = TAColor( _spec[ key ].value ).color;
后来
formItem.addElement( ti );
表单嵌入在标题窗口的组件中,该组件使用
PopUpManager.addPopUp(...);
当添加到TitleWindow时,它会正确显示在Form->FormItem not中:
我无法想象,为什么选择器没有出现。你喜欢吗?
解决方法:
如果我将颜色选择器包装在一个组中则一切正常:
ti = new Group();
Group( ti ).addElement( new ColorPicker() );
在这种情况下,颜色选择器显示为可编辑
不过,我还是很乐意知道我最初的解决方案有什么问题。Bug?在您提供的代码中,您从未将colorPicker作为子容器添加到任何父容器中;因此,它永远不会出现在任何地方
您可能需要执行以下操作:
formItem.addChild(ti );
[或对于Spark formItem]:
formItem.addElement(ti );
我不明白你为什么看到一个长方形 日期字段(类似于ColorPicker扩展ComboBase)以spark形式正常运行。但是在ColorPicker中,按钮的鼠标按下处理程序永远不会被调用。我认为可能是处理鼠标点击的皮肤部分(它必须是一个按钮)没有正确标注尺寸,结果是它没有显示出来。我得出这个结论是因为在mx表单中,ColorPicker不会像添加到常规显示列表时那样显示
希望这有助于…正确!但事实上,我确实添加了FormItem。由于此表单项只是几个表单项中的一个,因此代码位于上述打印代码的下方。是的,它执行formItem.addElement();这真奇怪。我曾尝试通过编程方式向spark表单添加一个颜色选择器,它会按照您的解释执行。。。虽然使用MX表单,但它确实可以正常工作。我强烈怀疑FocusManager。正如您所解释的,DateField或DatePicker工作得很好。FlashBuilder 4.5.1中包含了ColorPicker的来源。我不打算修补它们。但是如果我愿意,FlashBuilder会重新编译并将它们添加到我的二进制文件中吗?不,你有源代码,但它不是用来运行你的应用程序的,而且,你不想重新编译整个框架。我建议您扩展该组件并尝试对其进行修补。我自己试过,但找不到任何解决办法。。。