0

TitleWindow mxml から ActionScript で値を取得する際に問題に直面しています。以下は UpdateRelease.mxml です。

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" 
            title="Title Window" x="168" y="86">
<mx:Script>
    <![CDATA[
        import com.paul.data.ReleaseVO;
        import mx.controls.Alert;
        import mx.controls.Text;
        import mx.managers.PopUpManager;

        [Bindable]
        public var i_ReleaseVO:ReleaseVO = null;

        // Event handler for the OK button.
        protected function updateReleaseData(): void {
            if(releaseName.text == '')
                Alert.show("Release Name cannot be null");
            else if(releaseDate.text == '')
                Alert.show('Release Date cannot be null');
            else
                (parentApplication as Main).mainScreen.updateReleaseEvent();
        }
    ]]>
</mx:Script>
<mx:Canvas>
    <mx:VBox>
    <mx:HBox>
        <mx:Label text="Release Name"/>
        <mx:TextInput id="releaseName" width="100%" text="{i_ReleaseVO.release}"/>
    </mx:HBox>
    <mx:HBox>
        <mx:Label text="Release Date"/>
        <mx:DateField id="releaseDate" width="100%" selectedDate="{DateField.stringToDate(i_ReleaseVO.relDate, 'YYYY/MM/DD')}"/>
    </mx:HBox>
    <mx:HBox>
        <mx:Label text="Other Info"/>
        <mx:TextInput id="relOtherInfo" width="100%" text="{i_ReleaseVO.otherInfo}"/>
    </mx:HBox>
    <mx:HBox>
        <mx:Button label="OK" click="updateReleaseData();"/>
        <mx:Button label="Cancel" click="PopUpManager.removePopUp(this);"/>
    </mx:HBox>
    </mx:VBox>
</mx:Canvas>

以下は ActionScript コード スニペットです。

    public function updateReleaseEventHandler( pEvent:Event ): void {

        if(i_RequestServiceProxy != null) {
            var i_RequestParams:Object ={};
            i_HttpXMLRequest = new HttpXMLRequest();
            var obj:Object = new Object();
            obj["release"] = this.mainView.updateReleaseValueView.releaseName.text;
            obj["releaseDate"] = this.mainView.updateReleaseValueView.releaseDate.text;
            obj["otherInfo"] = this.mainView.updateReleaseValueView.relOtherInfo.text;
            i_RequestParams = i_HttpXMLRequest.getUpdateReleaseParams( obj );
            i_RequestServiceProxy.updateRelease( i_RequestParams );
        } else {
            Alert.show("i_RequestServiceProxy is NULL");
        }
    }

以下は、UpdateRelease.mxml が含まれていることを示す MainView.mxml です。

<s:VGroup width="100%" height="100%" >
    <mx:ViewStack id="vs">
        <views:UpdateRelease id="updateReleaseValueView" width="100%" height="100%"/>
    </mx:ViewStack>
</s:VGroup>

問題は、ActionScript ファイルの次のステートメントにあります。次のステートメントが期待どおりに機能しないことがわかりました。以下の最初のもので実行が失敗します。誰かがここで間違いを指摘できますか?

            obj["release"] = this.mainView.updateReleaseValueView.releaseName.text;
            obj["releaseDate"] = this.mainView.updateReleaseValueView.releaseDate.text;
            obj["otherInfo"] = this.mainView.updateReleaseValueView.relOtherInfo.text;
4

1 に答える 1

0

私はまだ問題を理解できませんでした。しかし、これを回避する別の方法を見つけました。親 mxml (ポップアップを起動する場所) でいくつかの変数を宣言し、[OK] ボタンのクリックが処理されたときに、それらの変数にポップアップの値を設定しました。それは今動作します。これは良い考えだとは思いませんが、上記のコードの問題を理解するまで、このアプローチを進めます。

そして、問題を見つけるために質問を読んでくれた人たちに感謝します:)

于 2012-11-07T20:11:39.900 に答える