forked from: 吹き出しクラス
// forked from tatsuya's 吹き出しクラス
package {
import flash.display.Sprite;
[SWF(width=465, height=465, backgroundColor=0xFFFFFF, frameRate=30)]
public class FlashTest extends Sprite {
public function FlashTest() {
var fk:Fukidashi = new Fukidashi("なによ!\nその言い方!\n私はただトイレットペーパーが欲しいだけなのよ",300,200);
addChild(fk);
}
}
}
import flash.display.CapsStyle;
import flash.display.Shape;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
internal class Fukidashi extends Sprite
{
public function Fukidashi(str:String = "なによ!\nその言い方!\n私はただトイレットペーパーが欲しいだけなのよ!",x:Number = 250,y:Number = 250, padding:int = 10, width:int = 200, ellipse:int = 50, color:uint = 0xff0099, inColor:uint = 0xeeeeee, fontSize:int = 20)
{
//文字.文字の長さで,高さが決まる.
var fmt:TextFormat = new TextFormat();
fmt.font = "_ゴシック"; //日本語フォントにすることで,MACで上が欠ける事を防止.
fmt.size = fontSize;
var tf:TextField = new TextField();
tf.defaultTextFormat = fmt;
tf.width = width - padding * 2;
tf.text = str;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.selectable = false;
tf.wordWrap = true;
tf.x = tf.y = padding;
//入れ物
var fukiContena:Sprite = new Sprite();
fukiContena.x = 250 - (width/2 - padding);
fukiContena.y = 250 - (tf.height + padding * 4);
//描画
var fuki:Shape = new Shape();
fuki.graphics.beginFill(color, 1.0);
fuki.graphics.drawRoundRect(0,0,width, tf.height + padding * 2 ,ellipse,ellipse);
fuki.graphics.endFill();
//中の形
var onfuki:Shape = new Shape();
onfuki.graphics.beginFill(inColor, 1.0);
onfuki.graphics.drawRoundRect(0, 0, width - padding , tf.height + padding , ellipse, ellipse);
onfuki.x = onfuki.y = padding / 2;
//下の方のチョン
var chon:Shape = new Shape();
chon.graphics.lineStyle(padding/2, inColor, 1.0, false, "normal", CapsStyle.SQUARE);
chon.graphics.moveTo(padding/2, -padding/4);
chon.graphics.lineTo(padding/2, padding*2);
chon.graphics.endFill();
chon.graphics.lineStyle(padding/2, color, 1.0);
chon.graphics.moveTo(0,0);
chon.graphics.lineTo(padding/2, padding * 2);
chon.graphics.lineTo(padding, 0);
chon.graphics.endFill();
chon.x = width / 2 - padding;
chon.y = tf.height + padding * 2;
//載せる
addChild(fukiContena);
fukiContena.addChild(fuki);
fukiContena.addChild(onfuki);
fukiContena.addChild(chon);
fukiContena.addChild(tf);
}
}