forked from: 練習中ver1.1.1
/**
* Copyright 5plus ( http://wonderfl.net/user/5plus )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/sRwv
*/
// forked from delaemon5's 練習中ver1.1.1
package {
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest () {
var g:TwitterImgLoad = new TwitterImgLoad();
addChild(g);
}
}
}
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.Shape;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.events.TextEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.net.URLLoader;
class TwitterImgLoad extends Sprite {
public function TwitterImgLoad ():void {
//検索APIにリクエストを投げる
//http://search.twitter.com/crossdomain.xml上で許可をしているので
//特に指定しなくても自動的に確認して、許可を得られる
var myURLLoader:URLLoader = new URLLoader();
myURLLoader.addEventListener(Event.COMPLETE,onCompleteXML);
var xmlURL:String = "http://search.twitter.com/search.atom?lang=ja&page=1&rpp=100&q=";
//encodeURIComponent()を使うことによって、#や日本語にも対応
xmlURL += encodeURIComponent("twitter");
myURLLoader.load(new URLRequest(xmlURL));
}
private function onCompleteXML(e:Event):void {
//XML型にキャスト
var myXML:XML = new XML(e.currentTarget.data);
//namespaceを設定
default xml namespace = new Namespace("http://www.w3.org/2005/Atom"); //*2
var tfY:int = 0;
//要素を取り出して、textFieldを作りならべる
var itemLength:int = myXML.entry.length();
for (var i:int = 0; i < itemLength; i++) {
//xmlからlink,authorName,titleの各値を取得
//var link:String = myXML.entry[i].link[0].@href;
var link:String = myXML.entry[i].author.name;
//var authorName:String = myXML.entry[i].author.name;
//var title:String = myXML.entry[i].title;
//アイコン画像のURLを取得
var imgURL:String = myXML.entry[i].link[1].@href;
//bmpフォーマットのアイコン画像を使っている人も少なくないため、Flashで使えるファイルの拡張子かどうかを判別
var extention:String = imgURL.substr( -4);
extention = extention.toLowerCase();
if (extention != ".jpg" && extention != ".gif" && extention != ".png") {
//Flashで使える画像の拡張子ではなかった場合にはデフォルトアイコンを指定
imgURL = "http://s.twimg.com/a/1254440757/images/default_profile.png";
}
//画像のファイル名が日本語などの規定外の文字である場合を考慮しエンコードする
imgURL = encodeURI(imgURL);
// 画像選択
// imgURL = imgURL.replace(/_normal\./, "_mini\.");
// URLRequestクラスを 読み込むパス tURL を元に作る。
var urImage:URLRequest = new URLRequest( imgURL );
// Loader(読込)オブジェクトを作成、設定。
var img:Loader = new Loader();
// URLRequestを読込に設定。
img.load( urImage );
img.contentLoaderInfo.addEventListener (Event.COMPLETE, onLoaded);
var row:int ;
if( row < 10 ){
row++;
}else{
row = 0;
}
img.x= row * 50;
img.y= Math.floor(i/10) * 50;
}
img.name=link;
}
private function onLoaded (e:Event):void {
var img:Loader = e.currentTarget.loader
var sprite:Sprite = new Sprite();
// button
sprite.addEventListener(MouseEvent.MOUSE_OVER,Over);
sprite.addEventListener(MouseEvent.MOUSE_DOWN,Down);
sprite.addEventListener(MouseEvent.MOUSE_OUT,Out);
sprite.addChild (img);
sprite.buttonMode = true;
sprite.width=50;
sprite.height=50;
addChild (sprite);
}
//マウスオーバー
private function Over(event:Event):void{
event.target.alpha = 0.7;
}
//マウスアウト
private function Out(event:Event):void{
event.target.alpha = 1;
}
//クリック
private function Down(event:Event):void{
//URLRequestの設定
var Url:URLRequest = new URLRequest("http://www.twitter.com/"+event.currentTarget.name);
//ターゲット条件を指定
var target:String = "_blank";
//指定したURLに飛ばす
navigateToURL(Url,target);
}
}