forked from: flash on 2014-11-24
forked from flash on 2014-11-24 (diff: 162)
メッセージウィンドウを表示する
ActionScript3 source code
/**
* Copyright tepe ( http://wonderfl.net/user/tepe )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/566b
*/
// forked from mutantleg's flash on 2014-11-24
package {
import flash.display.*;
import flash.events.*;
//メッセージウィンドウを表示する
public class FlashTest extends Sprite {
private var str:String ="";
private var s:Sprite = new Sprite();
private var mw:msgWindow = new msgWindow();
public function FlashTest() {
addChild(s);
s.x = 200;
s.y = 100;
s.graphics.lineStyle(2,0);
s.graphics.beginFill(0xffffff);
s.graphics.drawRect(0,0,50,50);
s.graphics.endFill();
s.buttonMode=true;
s.addEventListener(MouseEvent.MOUSE_OVER,function():void{
mw.show();
});
s.addEventListener(MouseEvent.MOUSE_OUT,function():void{
mw.hide();
});
addChild(mw);
mw.x = 32;
mw.y = 465-128;
var str:String = "1232183972489487583843294834892374832479248728941923----------------------------------------------------------";
str += "\n1232183972489487583843294834892374832479248728941923";
str += "\nてすと漢字12321839724894875838432948348923748324792fadfasdf ";
str += "\n1232183972489487583843294834892374832479248728941923";
str += "\n1232183972489487583843294834892374832479248728941923";
str += "\n1232183972489487583843294834892374832479248728941923";
mw.text = str;
mw.setSize(400,100);
}//ctor
}//classend
}
import flash.display.*;
import flash.text.*;
import flash.events.*;
class msgWindow extends Sprite{
private var tf:TextField = new TextField();
public var gt:int = 0;
public var state:int = 0;
public var cur:int = 0;//キャレット位置
public var mt:Number = 0;
public var msg:String = "";
private var w:int=465;
private var h:int=128;
public function msgWindow(){
tf.x = 8; tf.y = 8;
tf.width = w-12; tf.height= h-8;
tf.mouseEnabled = false;
tf.wordWrap=true;
tf.multiline=true;
tf.textColor=0xffffff;
tf.thickness=2;
addChild(tf);
addEventListener(Event.ENTER_FRAME,onFrame);
}
public function show():void{
state = 1;
addChild(tf);
addEventListener(Event.ENTER_FRAME,onFrame);
}
public function hide():void{
state = 0;
}
public function set text(str:String):void{
msg = str;
cur = 0;
}
public function get text():String{
return msg;
}
//ウィンドウサイズ設定
public function setSize(width:int,height:int):void{
w=width;
h=height;
tf.width=w-12;
tf.height=h-12;
}
private function onFrame(e:Event):void{
graphics.clear();
//状態1
if (state == 1){
mt +=0.1;
if (mt > 1) {
mt=1;
}
if(cur<msg.length)cur+=2;//表示文字を進める
}
else {
mt -=0.1;
if (mt < 0){
mt=0; cur =0;
removeChild(tf);
removeEventListener(Event.ENTER_FRAME,onFrame);
}
}
tf.alpha = mt;
if (state == 1) {
if(cur<msg.length)tf.text = msg.substr(0, cur) + " |";
else tf.text = msg.substr(0, cur) + ((gt & 16) > 0 ? "_":"");//キャレット点滅
tf.scrollV = tf.maxScrollV;
}
//ウィンドウ
//graphics.lineStyle(3,0xffffff,mt);//RPG
graphics.lineStyle();
graphics.beginFill(0x000000,0.9*mt);
graphics.drawRect(0,0,w,h);
graphics.endFill();
gt++;
}
}