In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

コピペで使える「Twitter投稿ボタン」クラス(美人すぎったー)

---------------------------------------------------------------------------
* Twitterに投稿するボタンが簡単に作れる!使える!(はず)
* 
* 自分のwonderflの作品に、Twitterに投稿する機能を付けたいけど、
* "よくワカラン"、"何かめんどそう"という方に・・・
* ---------------------------------------------------------------------------
* [使い方]
* ・110行目辺りにある、TwitterButtonクラスを丸ごとコピペするだけです。
* ---------------------------------------------------------------------------
* [使用例]
* 
* [[Twitter投稿ボタンを作成する]]
* 
* var linkURL:String = "http://bit.ly/abcdef"; //投稿時に一緒に表示されるURL
* var parent:Sprite = this; //ボタンを追加(addChild())する表示オブジェクト
* var xpos:Number = 50; //ボタンのX座標の位置
* var ypos:Number = 50; //ボタンのY座標の位置
* var text:String = "あなたのいちごは100%です!"; //投稿させたい本文の内容
* var hashTag:String = "#wonderfl"; //投稿時に一緒に表示されるハッシュタグ
* button = new TwitterButton(linkURL, parent, xpos, ypos, text, hashTag);
* 
* [[Twitter投稿ボタンを押した時に、投稿させたい本文の内容を変更する]]
* 
* var text:String = "あなたのいちごは100%中の100%です!";
* button.changeText(text);
* 
* ---------------------------------------------------------------
/**
 * Copyright o8que ( http://wonderfl.net/user/o8que )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/mXqD
 */

/* ---------------------------------------------------------------------------
 * Twitterに投稿するボタンが簡単に作れる!使える!(はず)
 * 
 * 自分のwonderflの作品に、Twitterに投稿する機能を付けたいけど、
 * "よくワカラン"、"何かめんどそう"という方に・・・
 * ---------------------------------------------------------------------------
 * [使い方]
 * ・110行目辺りにある、TwitterButtonクラスを丸ごとコピペするだけです。
 * ---------------------------------------------------------------------------
 * [使用例]
 * 
 * [[Twitter投稿ボタンを作成する]]
 * 
 * var linkURL:String = "http://bit.ly/abcdef"; //投稿時に一緒に表示されるURL
 * var parent:Sprite = this; //ボタンを追加(addChild())する表示オブジェクト
 * var xpos:Number = 50; //ボタンのX座標の位置
 * var ypos:Number = 50; //ボタンのY座標の位置
 * var text:String = "あなたのいちごは100%です!"; //投稿させたい本文の内容
 * var hashTag:String = "#wonderfl"; //投稿時に一緒に表示されるハッシュタグ
 * button = new TwitterButton(linkURL, parent, xpos, ypos, text, hashTag);
 * 
 * [[Twitter投稿ボタンを押した時に、投稿させたい本文の内容を変更する]]
 * 
 * var text:String = "あなたのいちごは100%中の100%です!";
 * button.changeText(text);
 * 
 * ---------------------------------------------------------------------------
 * [補足]
 * ローカル環境で使うには、
 * 「MinimalComps」(http://www.minimalcomps.com/)というライブラリが必要です。
 * もしくは、TwitterButtonクラス内のpostToTwitter()メソッドをコピペしてもOK。
 * ---------------------------------------------------------------------------
 */

 package {
	import com.bit101.components.*;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	
	public class FlashTest extends Sprite {
		private var _textField:TextField;
		private var _twitterID:InputText;
		private var _twitterButton:TwitterButton;
		
		public function FlashTest() {
			graphics.beginFill(0xc0deed);
			graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
			graphics.endFill();
			
			// TwitterIDを入力するフィールドを作成する
			new Label(this, 125, 5, "Twitter ID");
			_twitterID = new InputText(this, 125, 25, "", null);
			// 押すたびに文章を生成するボタンを作成する
			new PushButton(this, 240, 20, "check!", pressedCheckButton);
			// 文章を表示する為のテキストフィールドを作成する
			_textField = new TextField();
			_textField.x = 5, _textField.y = 60;
			_textField.width = 455, _textField.height = 20;
			_textField.background = true, _textField.backgroundColor = 0xffffff;
			_textField.border = true, _textField.borderColor = 0x000000;
			_textField.selectable = false;
			addChild(_textField);
			
			// Twitter投稿ボタンを作成する
			_twitterButton = new TwitterButton("http://bit.ly/a6xGei", this, 155, 90, "", "#wonderfl");
			// 最初は投稿ボタンを隠しておく
			_twitterButton.visible = false;
		}
		
		// 「check!」ボタンを押した時の処理
		private function pressedCheckButton(e:MouseEvent):void {
			// 文章をランダムに生成する
			var text:String = "";
			if (Math.random() < 0.7) {
				text += WORDS1[int(WORDS1.length * Math.random())];
			}else {
				text += WORDS2[int(WORDS2.length * Math.random())];
			}
			text += "すぎる";
			text += WORDS2[int(WORDS2.length * Math.random())];
			text += "、それが";
			if (_twitterID.text != "") {
				text += " @" + _twitterID.text + " さん";
			}else {
				text += "あなた";
			}
			text += "です。 [美人すぎったー]";
			
			// テキストフィールドに文章を表示する
			_textField.text = text;
			
			// 投稿ボタンを押した時に投稿される本文の内容を変更する
			_twitterButton.changeText(text);
			// 投稿ボタンを表示する
			_twitterButton.visible = true;
		}
		
		private static const WORDS1:Array = [
		"とってもかわゆ", "まこと素晴らし", "あっぱれ見事", "トイレが我慢が出来なさ", "正直とんでもなさ", 
		"これはひど", "明らかにやば", "何かわからないがすご", "仏の様に心が広", "存在自体が卑猥",
		"本当に往生際が悪", "無駄にポジティブ", "生まれつき体が弱","異常に速","全身がカチンカチンに硬",
		"自分自身を愛し", "何故か健康", "いくら何でも冗談が", "何もせずに時が", "とにかくエロ",
		"ゴチャゴチャほざき", "見えないオーラが溢れ出", "女子供にも容赦無さ", "全く動じなさ", "パンより米が好き",
		"ポテンシャルを秘め", "あまりに大器晩成", "心の奥に大きな闇を抱え", "実に惨め", "躾がなっていなさ"];
		private static const WORDS2:Array = [
		"美人", "市議", "秘書", "プロ", "市民", "生ゴミ", "奇人", "天才", "う○こ", "金星人",
		"変態", "裸族", "勇者", "ロリコン", "天使", "悪魔", "賢者", "ロボット", "馬鹿", "おっぱい",
		"犬", "猫", "人間", "神", "雑草", "野菜", "果物", "石像", "お肉", "スイーツ", "アレ"];
	}
}

// ここから下をコピペしてください

import com.bit101.components.*;
import flash.display.*;
import flash.events.*;
import flash.net.*
import flash.utils.*;

class TwitterButton extends PushButton {
	private var _text:String;
	private var _footer:String;
	public function changeText(str:String = ""):void { _text = str; }
	
	public function TwitterButton(linkURL:String, parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number = 0, text:String = "", hashTag:String = "#wonderfl") {
		super(parent, xpos, ypos, "Post to Twitter", postToTwitter);
		changeText(text);
		_footer = " " + linkURL + " " + hashTag;
		this.scaleX = this.scaleY = 1.5;
	}
	
	private function postToTwitter(e:MouseEvent):void {
		var post:String = _text + _footer; // 投稿する文章
		navigateToURL(new URLRequest("http://twitter.com/home?status=" + escapeMultiByte(post)), "_blank");
	}
}