私はFlex初心者です。WebAPIサービスから情報を受け取り、表示するMXMLアプリケーションを作成しています。WebAPIからFlexへのオブジェクトの返却
これまでは単純な文字列でこれを実現しましたが、複雑なオブジェクトを返そうとするとnullが返されます。コードはほとんどのFlash Builderのウィザードによって生成された
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:acrs_surveys="services.acrs_surveys.*"
xmlns:valueObjects="valueObjects.*"
minWidth="955" minHeight="600">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
protected function button_clickHandler(event:MouseEvent):void
{
GetSurveyResult.token = acrs_surveys.GetSurvey(itemidTextInput.text);
}
protected function button2_clickHandler(event:MouseEvent):void
{
survey.SurveyId = surveyIdTextInput.text;
survey.Title = titleTextInput.text;
}
protected function assignSurveyResult(event:ResultEvent):void
{
survey = event.result as Survey;
}
]]>
</fx:Script>
<fx:Declarations>
<s:CallResponder id="GetSurveyResult" result="assignSurveyResult(event)"/>
<valueObjects:Survey id="survey"/>
<acrs_surveys:Acrs_surveys id="acrs_surveys" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true" />
</fx:Declarations>
<s:Form defaultButton="{button}">
<s:FormItem label="Itemid">
<s:TextInput id="itemidTextInput"/>
</s:FormItem>
<s:Button id="button" label="GetSurvey" click="button_clickHandler(event)"/>
</s:Form>
<s:Form defaultButton="{button2}">
<s:FormHeading label="Survey"/>
<s:FormItem label="Questions">
<s:Label id="QuestionsLabel" text="Questions_type[]"/>
</s:FormItem>
<s:FormItem label="SurveyId">
<s:TextInput id="surveyIdTextInput" text="{survey.SurveyId}"/>
</s:FormItem>
<s:FormItem label="Title">
<s:TextInput id="titleTextInput" text="{survey.Title}"/>
</s:FormItem>
<s:Button id="button2" label="Submit" click="button2_clickHandler(event)"/>
</s:Form>
</s:Application>
:
はここに私のコードですが、それは非常に簡単なフォームです。 "Survey"クラスはGenerate Service Callウィザードで生成され、同じウィザードで定義されているGUID、Title、Questionオブジェクトのリストの3つのプロパティが含まれています。
コードを実行すると、エラーは発生せず、ネットワークモニタに応じて呼び出しが正常に行われ、データが返されます。しかし、assignSurveyResultでコードを破棄してサーベイオブジェクトをチェックすると、結果はnullになります。
サーベイタイトルのみを文字列として返すWebAPI呼び出しを使用するようにコードを変更すると、正常に動作します。それは動作しないオブジェクトだけであるように見えます。
私は間違っていますか?