Actionscript 3 如何在我的模型和flex组件之间进行通信?

Actionscript 3 如何在我的模型和flex组件之间进行通信?,actionscript-3,model,flex4,components,Actionscript 3,Model,Flex4,Components,我正在尝试获取ActionScript3.0模型,该模型使用Probertson的类链接到SQLite数据库,以与我的flex组件对话;我真的不确定如何最好地完成这一点。我已经编写了一些示例,但我不知道告诉组件SQL查询结果的最简单方法。有人有什么建议吗 下面是一些代码,让您了解我现在正在处理的内容 组成部分 你可以做一些事情 首先,我将创建一个数据库,以便您可以绑定到任何视图或组件中的任何数据更改 其次,我将在调用的loadPatient\u result方法中更新该单例模型 如果您想从结果和

我正在尝试获取ActionScript3.0模型,该模型使用Probertson的类链接到SQLite数据库,以与我的flex组件对话;我真的不确定如何最好地完成这一点。我已经编写了一些示例,但我不知道告诉组件SQL查询结果的最简单方法。有人有什么建议吗

下面是一些代码,让您了解我现在正在处理的内容

组成部分
你可以做一些事情

首先,我将创建一个数据库,以便您可以绑定到任何视图或组件中的任何数据更改

其次,我将在调用的loadPatient\u result方法中更新该单例模型

如果您想从结果和组件中分离,可以使用包含患者记录的组件,让组件侦听此类事件并相应地更新自身。或者让那个视图监听那个事件并相应地更新


你在正确的轨道上。我认为单身是你所需要的。

所以请仔细检查一下。。。如果我的“模型”中的代码是singleton。。我基本上是在loadresult方法中添加属性分配,然后在组件中使用getInstances,一旦loadresult分派了一个完整的事件,就会获得一个实例?如果您的模型是单例的,那么您可以在任何地方访问该单例/模型,这非常棒。i、 e.使用getInstance()方法访问属性,将数据保存或检索。如果模型中的属性也是可绑定的,那么无论何时更改,它们的值都将反映在绑定到这些值的任何组件中!
<fx:Declarations>
    <model:Patient id="editedPatient" FirstName="{FirstName.text}" /> 
</fx:Declarations>  

<fx:Script>
    <![CDATA[
        /*imports*/
        protected var _patient:Patient;

        public function get patient():Patient
        {
            return _patient;
        }

        [Bindable]
        public function set patient(value:Patient):void
        {
            _patient = value;
        }

        private function creationCompleteHandler(event:FlexEvent):void{
            _patient.getPatient(currentUser);
        }

        protected function save_clickHandler(event:MouseEvent):void
        {
            _patient.update(editedPatient);
        }

    ]]>
</fx:Script>

<s:TextInput id="FirstName" text="{patient.FirstName}" />
<s:Button id="save" label="save" click="save_clickHandler(event)" />
    public function getPatient(PatientId:int):void {
        var stmt:String = new String();

        stmt = "SELECT * FROM Patient WHERE PatientID= @PatiendId;";
        sqlRunner.execute(stmt, {PatientId:PatientId}, loadPatient_result, Patient);

    }

    private function loadPatient_result(result:SQLResult):void
    {
        if (result.data != null && result.data.length > 0)
        {
            var Patient:Patient = result.data[0];
        }

    }