Présentation Apparence Magie style machine écrire
forked from forked from: TextField_animation02 (diff: 6)
ActionScript3 source code
/**
* Copyright Etienne.Verhote ( http://wonderfl.net/user/Etienne.Verhote )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/eXRA
*/
// forked from hacker_n96o8lrr's forked from: TextField_animation02
// forked from oshige's TextField_animation02
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class MyTextField extends Sprite {
public var fld:TextField;
public var tf:TextFormat;
public var msg:String = "Le Créateur d'apparences confectionne \nvos Costumes et Robes haut de gamme,\nréalisés sur mesure pour le 'Quick Change',\nla 'Lévitation', le 'Close-up' et toutes \nautres magies...\n\nVotre tenue sera adaptée aux moindres exigences \nde vos prestations.\n\nMagicalement vôtre...\nEtienne Verhote,\nCréateur d'apparences ";
public var charPos:uint;
public var counter:uint;
public var currentMsg:String;
public var timer:Timer;
public var offset:int = Math.floor(3 * Math.random()) + 3;
//コンストラクタ
public function MyTextField(){
tf = makeTextFormat("Edwardian Script ITC",30,0x000000);
//テキストフィールドの作成
fld = new TextField();
fld.x = 20;
fld.y = 10;
fld.autoSize = TextFieldAutoSize.LEFT;
//書式の初期値
fld.defaultTextFormat = tf;
addChild(fld);
//アニメーション用のループを行うタイマー
timer = new Timer(0);
timer.addEventListener(TimerEvent.TIMER,timerHandler);
timer.start();
}
//書式の作成
public function makeTextFormat(font:String,size:uint,color:uint):TextFormat {
var tf:TextFormat = new TextFormat();
tf.font = font;
tf.size = size;
tf.color = color;
return tf;
}
//文字コードを探りながら1文字ずつ追加
public function timerHandler(event:TimerEvent):void {
//表示したい文字コードよりoffsetだけ小さい文字コード
var startCharCode:uint = msg.charCodeAt(charPos) - offset;
//文字コードを文字に変換
var char:String = String.fromCharCode(startCharCode + counter);
//表示済みのテキストに新しい文字と"_"を連結して表示します。
fld.text = msg.substring(0,charPos) + char + "_";
//表示したい文字と比較
if (msg.charAt(charPos) == char) {
//すべてのメッセージを表示し終わったかどうか
if(charPos==msg.length-1){
//終了
timer.stop();
fld.text = msg;//文末の "_"を取り去るためにmsgを入れ直します。
} else {
//次に表示する文字に移ります。
offset = Math.floor(7 * Math.random()) + 3;
charPos++;
counter = 0;
}
} else {
//次の文字コードに進めます
counter++;
}
}
}
}