ActionScript3.0でJSON読み込む方法の続きです。たいしたことはやっていないのですが、google翻訳APIの翻訳結果JSONを読み込むswfのソースを公開します。ダウンロードはこちらから。
ポイントをいくつか。
1.一応MVCパターンで構成されています。WEB+DB PRESS Vol.46|gihyo.jp … 技術評論社の特集を参考にしました。
2.Web APIコール部分はHTTPServiceクラスを継承し、google翻訳APIコール部分をラップしている点でしょうか・・・
public class TranslateService extends HTTPService { public function TranslateService(rootURL:String=null, destination:String=null) { super(rootURL, destination); } public function initService():void { this.method = "post"; this.url = "http://ajax.googleapis.com/ajax/services/language/translate"; this.addEventListener(ResultEvent.RESULT, onResult); this.addEventListener(FaultEvent.FAULT, onFault); } private function Translate(v:String, q:String, languageFrom:String, languageTo:String):void { var forms:URLVariables = new URLVariables(); forms.v = v; forms.q = q; forms.langpair = languageFrom + "|" + languageTo; this.request = forms; this.send(); } }
3.それと前回の記事にもありますが、JSONの読込にas3corelibを利用しているところですね。
private function onResult(event:ResultEvent):void { var json:Object = JSON.decode(event.result.toString()); if (json.responseStatus == 200) { this._controller.setTranslated(json.responseData.translatedText); } else { this._controller.setTranslated("翻訳失敗..."); } }
最後に。
このアプリはflashcastが10人で構成されていることから、自分を除いて、9ヶ国語対応しています。言語はlanguage-config.xmlに定義してあるので、増やしたり減らしたりはご自由に。リコンパイルが必要ですが。すんません・・・
<?xml version="1.0" encoding="UTF-8"?> <languages> <language> <label>English</label> <data>en</data> </language> <language> <label>Japanese</label> <data>ja</data> </language> <!-- 中略 --> <language> <label>Korean</label> <data>ko</data> </language> </languages>
機能するのはもちろんgoogle翻訳APIが対応している言語だけですけど。
Class Reference for Translation API – Google AJAX Language API – Google Code