« データセンター構想(政府主導) | トップページ | FlexにはまるⅠ »

2009年5月22日 (金)

RoRとFlex(XMLデータの取り扱い)

Ruby on RailsとAdobe AIRでデスクトップアプリを作るに挑戦した。最初は手馴れたRoRで問題も無く、単純なFlexも快適。

終盤近く、更新した付箋紙を保存した場合にRoR側の更新がどうしてもうまく行かなかった。

最初は以下のエラー

Error #2044: Unhandled ioError:. text=Error #2032: Stream Error.

これはrequest.contentType = "text/xml";」が指定されていないためで解消に至るまではフラストレーションが溜まった。次は

undefined method `stringify_keys!'

以前にも遭遇した課題だが、parametersに問題があるらしい。

事例ではURLVariablesをベースに実施する仕組みとなっていた。

          var variables : URLVariables = new URLVariables ();
           variables['sticky[x]'] = sticky.window.x / Capabilities.screenResolutionX;
           variables['sticky[y]'] = sticky.window.y / Capabilities.screenResolutionY;
           variables['sticky[width]'] = sticky.window.width;
           variables['sticky[height]'] = sticky.window.height;
           variables['sticky[body]'] = sticky.editor.text;

が、どうやってもstringifyから開放されないのでRoRでの更新結果ログをみて、これをXMLで再現することに。何となれば、?.xmlを更新するのだからXML形式のデータ作成することが当然と思い直す。

            request.contentType = "text/xml";
            var data:XML = new XML("<sticky></sticky>");
            var body:XML = new XML("<body></body>");
            body.appendChild(sticky.editor.text);
            data.appendChild(body);
            var height:XML = new XML("<height></height>");
            height.appendChild(sticky.window.height);
            data.appendChild(height);
            var width:XML = new XML("<width></width>");
            width.appendChild(sticky.window.width);
            data.appendChild(width);
            var x:XML = new XML("<x></x>");
            x.appendChild(sticky.window.x / Capabilities.screenResolutionX);
            data.appendChild(x);
            var y:XML = new XML("<y></y>");
            y.appendChild(sticky.window.y / Capabilities.screenResolutionY);
            data.appendChild(y);

これで、stringifyの悪夢から無事開放される。

それでも反省は、Flexの基本を理解しないままでの安易な取組みなのだろう。

« データセンター構想(政府主導) | トップページ | FlexにはまるⅠ »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: RoRとFlex(XMLデータの取り扱い):

« データセンター構想(政府主導) | トップページ | FlexにはまるⅠ »