- package
- {
- import com.wordnik.api.batch.Batch;
- import com.wordnik.api.batch.OpGetAudioInfo;
- import com.wordnik.api.batch.OpGetDefinitions;
- import com.wordnik.api.batch.OpGetExamples;
- import com.wordnik.api.batch.OpGetFrequencyData;
- import com.wordnik.api.batch.OpGetPronunciations;
- import com.wordnik.api.batch.OpGetRelatedWords;
- import com.wordnik.api.client.WordnikClient;
- import com.wordnik.api.entity.ApiUserCredentials;
- import com.wordnik.api.entity.Word;
- import com.wordnik.api.entity.word.AudioFileInfo;
- import com.wordnik.api.entity.word.RelatedWordSet;
- import com.wordnik.api.entity.word.TextPronunciation;
- import com.wordnik.api.entity.word.UsageFrequency;
- import com.wordnik.api.event.ApiClientEvent;
- import com.wordnik.api.event.Response;
- import flash.display.Sprite;
- import flash.text.TextField;
- import flash.text.TextFieldAutoSize;
- import flash.text.TextFormat;
- public class Main extends Sprite
- {
- private const textfield:TextField = new TextField();
- private const format:TextFormat = new TextFormat();
- private const apiKey: String = "your-api-key";
- private const hostName: String = "api.wordnik.com";
- public function Main()
- {
- initUi();
- // Instantiate a WordnikClient
- var wordnikCredentials: ApiUserCredentials = new ApiUserCredentials(this.apiKey);
- wordnikCredentials.hostName = this.hostName;
- const wordnikClient: WordnikClient = new WordnikClient(wordnikCredentials);
- // To make multiple calls in one shot use the batch feature:
- // Create a batch
- const batch: Batch = new Batch();
- batch.add(new OpGetDefinitions(2));
- batch.add(new OpGetExamples());
- batch.add(new OpGetRelatedWords());
- batch.add(new OpGetAudioInfo(5));
- batch.add(new OpGetFrequencyData());
- batch.add(new OpGetPronunciations());
- // Execute it
- wordnikClient.addEventListener(ApiClientEvent.BATCH_EXECUTE_RESPONSE_EVENT, onBatchRequestCompleted);
- wordnikClient.execute("freedom", batch);
- }
- private function onBatchRequestCompleted(event: ApiClientEvent, requestId: String = null):void {
- var result: Response = event.response;
- var wordnikWord: Word = result.payload as Word;
- showText("");
- showText("Definitions");
- for(var i: Number = 0; i < wordnikWord.definitions.length; i++) {
- showText(" - " + wordnikWord.definitions[i].text);
- }
- showText("");
- showText("Examples");
- for(i = 0; i < wordnikWord.examples.length; i++) {
- showText(" - " + wordnikWord.examples[i].display);
- }
- for(i = 0; i < wordnikWord.relatedWords.length; i++) {
- var relatedWordSet: RelatedWordSet = wordnikWord.relatedWords[i] as RelatedWordSet;
- showText("");
- showText("Related Words " + relatedWordSet.relationType);
- for(var j: Number = 0; j < relatedWordSet.words.length; j++) {
- showText(" - " + relatedWordSet.words[j]);
- }
- }
- showText("");
- showText("Audio Urls");
- for(i = 0; i < wordnikWord.audioMetadata.length; i++) {
- var audioInfo: AudioFileInfo = wordnikWord.audioMetadata[i] as AudioFileInfo;
- showText(" - " + audioInfo.fileUrl);
- }
- if(wordnikWord.frequencyData != null) {
- showText("");
- showText("Frequency Data");
- showText(" - frequency: " + wordnikWord.frequencyData.frequencyString);
- showText(" - usage count: " + wordnikWord.frequencyData.totalCount);
- showText(" - unknownYearCount: " + wordnikWord.frequencyData.unknownYearCount);
- if(wordnikWord.frequencyData.usageFrequencies != null && wordnikWord.frequencyData.usageFrequencies.length > 0) {
- showText("");
- showText("Frequency Data - Usage Frequency");
- for(i = 0; i < wordnikWord.frequencyData.usageFrequencies.length; i++) {
- var usageFrequency: UsageFrequency = wordnikWord.frequencyData.usageFrequencies[i] as UsageFrequency;
- showText(" - " + usageFrequency.year + " : " + usageFrequency.count);
- }
- }
- }
- showText("");
- showText("Text Pronunciations");
- for(i = 0; i < wordnikWord.audioMetadata.length; i++) {
- var textPron: TextPronunciation = wordnikWord.textPronunciations[i] as TextPronunciation;
- showText(" - " + textPron.raw);
- }
- }
- private function initUi(): void {
- textfield.width = 200;
- textfield.height = 300;
- textfield.text = "Properties of freedom";
- textfield.y = 0;
- textfield.x = 0;
- textfield.border = true;
- textfield.background = true;
- textfield.multiline = true;
- textfield.wordWrap = true;
- format.color = 0x666666;
- format.size = 8;
- textfield.defaultTextFormat = format;
- textfield.setTextFormat(format);
- addChild(textfield);
- }
- private function showText(s: String): void {
- textfield.appendText(s + "\n");
- trace(s);
- }
- }
- }