Apache flex Flex 3-textArea的问题;可编辑";财产
我对textArea控件的属性“editable”有问题 我有一个组件:OrderView.mxml及其关联的数据类OrderViewData.as Orderview.mxml位于viewStack中,用于启用从一个组件到另一个组件的导航。 在这种特殊情况下,OrderView.mxml由另一个组件调用:SearchResult.mxml。因此,我可以从SearchResult.mxml导航到OrderView.mxml,然后返回SearchResult.mxml OrderView.mxml具有textArea和textInput控件,它们必须是可编辑的或不可编辑的,具体取决于OrderViewData.as中的属性变量IsEdit:Boolean 启动应用程序时,isEditable=true。因此,用户第一次访问OrderView.mxml时,所有textInput和textArea控件都是可编辑的。当用户单击OrderView.mxml中的order按钮时,isEditable=false。当用户返回SearchResult.mxml时,isEditable=true(再次)-->直到这里,一切正常 问题是:当用户第二次返回OrderView.mxml(甚至更高)时,即使属性isEditable=true,textArea控件仍然是不可编辑的。。。但是文本输入控件是可编辑的 以下是一些代码供您理解: OrderView.mxmlApache flex Flex 3-textArea的问题;可编辑";财产,apache-flex,textarea,Apache Flex,Textarea,我对textArea控件的属性“editable”有问题 我有一个组件:OrderView.mxml及其关联的数据类OrderViewData.as Orderview.mxml位于viewStack中,用于启用从一个组件到另一个组件的导航。 在这种特殊情况下,OrderView.mxml由另一个组件调用:SearchResult.mxml。因此,我可以从SearchResult.mxml导航到OrderView.mxml,然后返回SearchResult.mxml OrderView.mxml
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundColor="#F3EDEC">
<mx:TextArea
id="contentTA"
text="{OrderViewData.instance.contentTA}"
enabled="{OrderViewData.instance.isEnabled}"
width="100%" height="51"
maxChars="18" styleName="ORTextInput"
focusIn="if(OrderViewData.instance.isEditable) contentTA.setSelection(0, contentTA.length)"
editable="{OrderViewData.instance.isEditable}"/>
<mx:TextInput id="contentTI"
text="{OrderViewData.instance.contentTI}"
width="40" height="18" maxChars="4"
styleName="ORTextInput"
change="contentTI_change()"
focusIn="if(OrderViewData.instance.isEditable) contentTI.setSelection(0, contentTI.length)"
editable="{OrderViewData.instance.isEditable}"/>
</mx:Canvas>
我遗漏了什么吗?您是否将isEditable变量[Bindable]设为可编辑变量?看来每个人都有更多的想法 我想出了一个不太干净的解决办法。但它是有效的 我在组件的show事件中使用了init函数,在这里创建控件并将其添加到适当的父级。因此,之前编写的mxml代码已被删除=) 此init函数如下所示:
private function init():void
{
// contentTA
if(contentTA != null && parentBox.contains(contentTA))
parentBox.removeChild(contentTA);
contentTA = new TextArea;
contentTA.text = OrderViewData.instance.contentTA;
contentTA.enabled = OrderViewData.instance.isEnabled;
contentTA.percentWidth = 100;
contentTA.height = 51;
contentTA.maxChars = 50;
contentTA.styleName = "ORTextInput";
contentTA.editable = OrderViewData.instance.isEditable;
contentTA.addEventListener(FocusEvent.FOCUS_IN, focusIn);
parentBox.addChild(contentTA);
// same thing for all the other textAreas of my component
...
}
你好是的,变量是可绑定的。正如我所说,textInput控件确实考虑了变量isEditable的修改。我在textArea上添加了一个警报,以显示isEditable的值和控件的属性editable。即使“isEditable”设置为true,“editable”也将保持设置为false。。。