forked from: forked from: forked from: ランダムテキストに座布団つけてみた
よく見るランダムテキストの練習。
カーソルが指になるようにSpriteの上にのせてTextFieldのmouseEnabledをfalseにしてみた
座布団のカラーをランダムにしてみた。
paq
座布団のscaleXが1になるまで、トゥイーンしないようにしてみた。
さらにフォントを小さくしてみた。
座布団のサイズを固定した。
フォントを埋め込むときれいになるけど・・・。日本語が表示できない。
// forked from flabaka's forked from: forked from: ランダムテキストに座布団つけてみた
// forked from northprint's forked from: ランダムテキストに座布団つけてみた
// forked from clockmaker's ランダムテキストに座布団つけてみた
// forked from sake's ランダムテキストのサンプル
/*
よく見るランダムテキストの練習。
*/
//カーソルが指になるようにSpriteの上にのせてTextFieldのmouseEnabledをfalseにしてみた
//座布団のカラーをランダムにしてみた。
//paq
//座布団のscaleXが1になるまで、トゥイーンしないようにしてみた。
//さらにフォントを小さくしてみた。
//座布団のサイズを固定した。
//フォントを埋め込むときれいになるけど・・・。日本語が表示できない。
package
{
import flash.display.Sprite;
[SWF(width="465", height="465", backgroundColor="0xffffff", frameRate="60")]
public class RandomTextSample extends Sprite
{
public function RandomTextSample()
{
var i:int = 1
var rand1:RandomText=new RandomText("Wonderfl build flash online.");
addChild(rand1);
rand1.x = 20;
rand1.y = 24 * i++;
var rand2:RandomText=new RandomText("ActionScript3.0 and Papervision3D and Tweener.");
addChild(rand2);
rand2.x = 20;
rand2.y = 24 * i++;
var rand3:RandomText=new RandomText("Progression and Box2DFlashAS3 and Tweensy.");
addChild(rand3);
rand3.x = 20;
rand3.y = 24 * i++;
var rand4:RandomText=new RandomText("Flex and Mete and yui.");
addChild(rand4);
rand4.x = 20;
rand4.y = 24 * i++;
var rand5:RandomText=new RandomText("Japanese cannot be used. :(");
addChild(rand5);
rand5.x = 20;
rand5.y = 24 * i++;
/*var rand5:RandomText=new RandomText("ロールオーバーに座布団つけてみました");
addChild(rand5);
rand5.x = 20;
rand5.y = 24 * i++;
var rand6:RandomText=new RandomText("座布団つけるとちょっといい感じ");
addChild(rand6);
rand6.x = 20;
rand6.y = 24 * i++;
var rand7:RandomText=new RandomText("メニューバーの演出とかに使えそう");
addChild(rand7);
rand7.x = 20;
rand7.y = 24 * i++;
var rand8:RandomText=new RandomText("ついでにマウスカーソルが指になるように少々いじってみました");
addChild(rand8);
rand8.x = 20;
rand8.y = 24 * i++;*/
}
}
}
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.utils.Timer;
import flash.events.MouseEvent;
import caurina.transitions.*
class RandomText extends Sprite
{
[Embed(systemFont="serif", fontName="font", unicodeRange="U+0000-U+005A", mimeType="application/x-font")]
private var font:Class;
private var RandSource:String="_ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
private var MainString:String;
private var Length:int;
private var ReplaceCount:int;
private var ReplaceTimer:Timer;
private var RandomTimer:Timer;
public var MainTextField:TextField;
private var mainBg:Sprite = new Sprite();
private var bg:Sprite = new Sprite();
public function RandomText(main_string:String)
{
var tf:TextFormat = new TextFormat("font", 12, 0x000000);
MainString = main_string;
Length=MainString.length;
MainTextField=new TextField();
MainTextField.defaultTextFormat = tf
MainTextField.text=MainString;
MainTextField.autoSize = TextFieldAutoSize.LEFT;
MainTextField.embedFonts = true;
mainBg.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
mainBg.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
MainTextField.selectable = false;
MainTextField.mouseEnabled = false;
mainBg.buttonMode = true;
mainBg.useHandCursor = true;
addChild(mainBg);
mainBg.addChild(MainTextField);
ReplaceTimer=new Timer(10);
ReplaceTimer.addEventListener(TimerEvent.TIMER, onReplaceTimer);
var padding:int = 3
bg.graphics.beginFill(Math.random()*0xFFFFFF)
//bg.graphics.drawRect( - padding, - padding, MainTextField.textWidth + padding * 2, MainTextField.textHeight + padding * 2)
bg.graphics.drawRect(- padding,- padding,400, MainTextField.textHeight + padding * 2)
bg.scaleX = 0;
bg.alpha = 0;
addChildAt(bg, 0);
}
private function onMouseOver(e:MouseEvent):void
{
if (ReplaceTimer.running) ReplaceTimer.stop();
ReplaceCount = 0
ReplaceTimer.start();
Tweener.addTween(bg, {scaleX:1, alpha:1, time:0.5})
}
private function onMouseOut(e:MouseEvent):void
{
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onReplaceTimer(e:TimerEvent):void
{
MainTextField.text="";
var i:int=0;
for(i=0; i < ReplaceCount; i++) MainTextField.appendText(MainString.charAt(i));
for(i=0; i < Length - ReplaceCount; i++) MainTextField.appendText(RandSource.charAt(Math.floor(Math.random() * (RandSource.length - 1))));
if(ReplaceCount==Length) ReplaceTimer.stop();
ReplaceCount++;
}
private function onEnterFrame(e:Event):void
{
if (bg.scaleX == 1) {
Tweener.addTween(bg, { scaleX:0, alpha:0, time:1.25, delay:0.2,transition:"easeInCubic" } );
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
}