2

私はFlash開発に非常に慣れていません。

JSON を返すコントローラー アクションを持つ asp.net mvc サイトがあります。

現在のスケジュールを取得するために、15 分ごとにそのコントローラー アクションを呼び出す必要がある Flash Media Server セットアップがあります。FMS にサイトを呼び出させることができ (15 分ごとに問題ありません)、現在 JSON を文字列として取得していますが、返されたデータを使用するには、文字列からオブジェクトに解析する必要があります。

ポインタやアイデアは大歓迎です。

4

2 に答える 2

0

Mike Chambers は github に AS3 ライブラリを持っています ( https://github.com/mikechambers/as3corelib )。ライブラリの 1 つは、JSON のシリアル化と解析用です。Flex MXML ドキュメントでの彼の例を次に示しますが、AS3 でも同じです (基本的に JSON データを取得し、それに対して JSON.decode() を呼び出して配列を取得します)。

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" 
layout="absolute"
creationComplete="service.send()" viewSourceURL="srcview/index.html">

<mx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.rpc.events.ResultEvent;
        import com.adobe.serialization.json.JSON;

        private function onJSONLoad(event:ResultEvent):void
        {
            var rawData:String = String(event.result);
            var arr:Array = (JSON.decode(rawData) as Array);

            var dp:ArrayCollection = new ArrayCollection(arr);

            grid.dataProvider = dp;
        }
    ]]>
</mx:Script>

<mx:HTTPService
    id="service"
    resultFormat="text"
    url="http://weblogs.macromedia.com/mesh/mashedpotato.json"
    result="onJSONLoad(event)" />

<mx:DataGrid id="grid" right="10" left="10" top="10" bottom="10">
    <mx:columns>
        <mx:DataGridColumn headerText="Service" dataField="src"/>
        <mx:DataGridColumn headerText="Title" dataField="title"/>
    </mx:columns>
</mx:DataGrid>

于 2011-09-20T19:38:19.567 に答える
0

FMS からの Web サービス呼び出しを使用してデータを取得していると思います。Actionscript 1 では、eval() を使用して、クエリできるオブジェクトを取得できるはずだと思います。

var callback = mWebService.NewGuid();
mWebService.onResult = function(resultString){
    var resultObject = eval(resultString);
    trace(resultObject.mProperty1);
}
于 2012-10-18T15:45:57.183 に答える