英語を勉強しようかなとSmart.fm APIを使う。
forked from 英語を勉強しようと (diff: 50)
英語の勉強とかなんとかw クリックで問題と解答の切り替え 日本語を英語にしなさい的な〜。 試しにsmart.fmのAPIを利用してみた。 メモ http://smart.fm/ http://developer.smart.fm/docs/Sentence_calls/search_sentences
ActionScript3 source code
/**
* Copyright teageek ( http://wonderfl.net/user/teageek )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/eUsy
*/
// forked from teageek's 英語を勉強しようと
//英語の勉強とかなんとかw
//クリックで問題と解答の切り替え
//日本語を英語にしなさい的な〜。
//試しにsmart.fmのAPIを利用してみた。
//メモ http://smart.fm/
//http://developer.smart.fm/docs/Sentence_calls/search_sentences
package {
import flash.display.Sprite;
import flash.text.*;
import flash.filters.*;
import flash.events.*;
import flash.display.Loader;
import flash.net.*;
import caurina.transitions.Tweener;
public class StudyPipes extends Sprite {
private var keyword:String= "business";
private const URL:String = "http://api.iknow.co.jp/sentences/matching/"+keyword+".rss?difficulty=3";
private var a:Array = [];
private var c:int =0;
private var tf:TextField;
public function StudyPipes() {
var t:TextField= new TextField();
t.defaultTextFormat = new TextFormat("_明朝",20, 0x0);
t.text="日本語を英語にしてください。"
t.width =450;
t.height =40;
t.x=20;
t.y=20;
addChild(t);
var t2:TextField= new TextField();
t2.defaultTextFormat = new TextFormat("_明朝",12, 0x0,null,null,
null,null,null,"right");
t2.text="Smart.fmのAPIをつかってみた。\nPowed By Smart.fm \nhttp://developer.smart.fm"
t2.width =430;
t2.height =40;
t2.x=0;
t2.y=340;
addChild(t2);
var s:Sprite = new Sprite();
s.graphics.beginFill(0xff88ff,0.3)
var w:Number= 250;
s.x=20+w*1.616/2,s.y=80+w/2;
s.graphics.drawRect(-w*1.616/2,-w/2,1.616*w,w);
s.graphics.endFill();
addChild(s);
s.filters=[ new DropShadowFilter(8, 45, 0x000000, 0.8, 16,
16, 1, 1, false, false, false)];
tf = new TextField();
tf.defaultTextFormat = new TextFormat("typeWriter_",20, 0x0);
tf.text ="loading....";
//tf.autoSize = TextFieldAutoSize.LEFT;
tf.y=40-w/2,tf.x=20-w*1.616/2;
tf.wordWrap=true;
tf.width=s.width-20;
tf.selectable=false;
s.addChild(tf);
s.addEventListener(MouseEvent.CLICK,function():void{
if(c<a.length*2);
Tweener.addTween(s,{
scaleY:0,
scaleX:0,
time:0.5,
transition:"easeinquad",
onComplete:function():void{
var n:int = Math.floor(c/2);
var b:int = c%2;
//trace(b);trace(n);
if(b){
tf.defaultTextFormat = new TextFormat("typeWriter_",20, 0x0);
tf.text=a[n].title;}
else {
tf.defaultTextFormat = new TextFormat("_明朝",20, 0x0);
tf.text=a[n].description;
}
trace(c);
c++;
}
});
Tweener.addTween(s,{
scaleY:1,
scaleX:1,
delay:0.5,
time:0.5,
transition:"easeinquad"});
});
var req:URLRequest = new URLRequest(URL);
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
req.method = "GET";
req.url = URL;
configureListeners(loader);
try {
loader.load(req);
} catch (error:Error) {
trace("Unable to load requested document.");
}
}
private function comp(e:Event):void{
tf.text="クリックしてスタート";
trace("データGet");
var xmlData:XML= new XML(e.target.data);
for each(var element:Object in xmlData.channel.item){
var o:Object=new Object();
o.link= element.link;
o.title=element.title;
o.description= element.description;
// trace(o.title);
a.push(o);
}
}
private function configureListeners
(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, comp);
dispatcher.addEventListener(Event.OPEN,trace);
dispatcher.addEventListener(ProgressEvent.PROGRESS,trace);
dispatcher.addEventListener
(SecurityErrorEvent.SECURITY_ERROR,trace);
dispatcher.addEventListener
(HTTPStatusEvent.HTTP_STATUS, trace);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, trace);
}
}
}
