Forked from: hacker_n96o8lrr's forked from: TextField_animation02 diff:6 Présentation Apparence Magie style machine écrire Etienne.Verh.. forked:2favorite:0lines:54license : MIT License modified : 2012-03-08 22:27:47 Embed Tweet // 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++; } } } } Code Fullscreen Preview Fullscreen TextFormat substring charCodeAt size stop String.fromCharCode addEventListener charAt color TimerEvent Timer Math.floor start font TimerEvent.TIMER text String length addChild Math.random sort new page view favorite forked pv109 forked from: Présentation Appa.. Etienne.Verhote forked:1 favorite:0lines:54 (diff:5) pv393 forked from: Présentation Appa.. Etienne.Verhote forked:3 favorite:2lines:54 (diff:5)