Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex 3-textArea的问题;可编辑";财产_Apache Flex_Textarea - Fatal编程技术网

Apache flex Flex 3-textArea的问题;可编辑";财产

Apache 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

我对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.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。。。