package { import flash.events.*; import flash.display.*; import flash.text.*; import flash.geom.*; import fl.motion.easing.*; import com.flashdynamix.motion.*; import flash.text.Font; [SWF(backgroundColor="#000000", frameRage = "30")] public class S extends Sprite { private var _t:TextField; private var _nowBmpd:BitmapData; private var _bmp:Bitmap; private var _cnt:int = 0; private var _mtx:Matrix; private var _texts:Array = ["WCAN mini AS vol.10", "豆腐(ホワイト)デー", "小林陽介 ll_koba_ll", "株式会社ローハイド. / FANS JP株式会社", "東京でFlashな仕事してます", "名古屋から来たFlasher", "Blog書いてます", "http://un-q.net | Unknown Quality", "「名古屋 ActionScript」でググると1番です", "今日は白がテーマということで", "パーティクルで雪をふらしてみます", "ホワイトホワイトデー!", "最近パーティクルにはまってて", "本当は自作のパーティクルエンジンを作って", "公開するつもりだったのですが", "時間がなくて無理でした><", "でも今作ってるよ", "今日はTweensyで雪のパーティクル作ってみました", "Tweensy?", "アニメーショのライブラリです", "Tweenerみたいなもん", "アニメーションのライブライなのに", "エフェクトとかの機能がついてる", "その中にパーティクルの機能もあったりします", "それで雪降らしてみました", "さっき東京からの新幹線でつくったよ", "デモ", "おわり" ] public function S() { addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; //stage.quality = StageQuality.LOW; _t = new TextField(); var tf:TextFormat = new TextFormat(); tf.size = 40; tf.color = 0xFFFFFF; tf.font = "ヒラギノ角ゴ Pro W6"; _t.autoSize = TextFieldAutoSize.LEFT; _t.defaultTextFormat = tf; _nowBmpd = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0x00FFFFFF); _nowBmpd.draw(_t); _bmp = new Bitmap(_nowBmpd); addChild(_bmp); // 右と左 stage.addEventListener(MouseEvent.CLICK, changeText); // stage.addEventListener(KeyboardEvent.KEY_DOWN, function(e:KeyboardEvent):void { switch (e.keyCode) { case 70: // f if (stage.displayState == "normal") { stage.displayState = "fullScreen"; removeChild(_bmp); _nowBmpd = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0x00FFFFFF); _bmp = new Bitmap(_nowBmpd); addChild(_bmp); _cnt--; changeText() } break; default: break; } }); } private function changeText(e:MouseEvent = null):void { // bmpにしてアニメ //_t.text = s; if (_cnt >= _texts.length) { addEventListener(MouseEvent.CLICK, changeText); return; } var ts:TweensySequence = new TweensySequence(); ts.push(_bmp, {alpha:0}, 1); ts.onComplete = function():void { _t.text = _texts[_cnt]; _cnt++; // center _mtx = new Matrix(); _mtx.translate(stage.stageWidth/2 - _t.width/2, stage.stageHeight/2 - _t.height/2); // bmpdata clear _nowBmpd.fillRect(_nowBmpd.rect, 0x00FFFFFF); _nowBmpd.draw(_t, _mtx); ts.dispose(); ts = null ts = new TweensySequence(); ts.push(_bmp, {alpha:1}, 1); ts.onComplete = function():void { ts.dispose(); ts = null; } ts.start(); } ts.start(); } } } WCAN mini ActionScript Vol.10