actionscript Archive
yugop.comのテキスト表示がかっこ良いのでまねしてみた
- 2008-09-11 (木)
- actionscript | flex
actionscriptが楽しい今日このごろ、yugoさんの所のテキスト表示がかっこよかったのでまねしてみました。
うん、悪くないです。
埋め込みフォントを使わないテキストエフェクトとして素晴らしいアイディアですよね。
public var char_codes:Object = new Object();
public var stack:Object = new Object();
public var indexs:Array = new Array();
public var before_text:String;
public var display_text:String;
public function change():void {
var text:String = input_textinput.text;//mxmlのTextInputから
var len:uint = text.length;
before_text = '';
for (var i:uint = 0; i < len; i++ ) {
if (text.charCodeAt(i) === 32) {
before_text += ' ';
} else if (text.charCodeAt(i) === 12288) {
before_text += ' ';
} else {
char_codes[i] = [
text.charCodeAt(i),
text.charCodeAt(i) + 1,
text.charCodeAt(i) + 2,
text.charCodeAt(i) + 3,
text.charCodeAt(i) + 4,
text.charCodeAt(i) + 5,
text.charCodeAt(i) + 6,
text.charCodeAt(i) + 7,
text.charCodeAt(i) + 8,
text.charCodeAt(i) + 9,
text.charCodeAt(i) + 10
];
indexs.push(i);
before_text += '_';
}
}
addEventListener(Event.ENTER_FRAME, change_text);
}
public function change_text(event:Event = null):void {
var indexs_len:uint = indexs.length;
if (indexs_len) {
var index:String = String(Math.ceil(indexs_len * Math.random()) - 1);
stack[indexs[index]] = char_codes[indexs[index]];
indexs.splice(index, 1);
}
display_text = '';
var text_len:uint = before_text.length;
for (var i:uint = 0; i < text_len; i++ ) {
if (stack.hasOwnProperty(String(i))) {
var codes:Array = stack[String(i)];
var char:String = String.fromCharCode(codes.pop());
display_text += char;
if (stack[String(i)].length === 0) {
delete stack[String(i)];
}
} else {
display_text += before_text.charAt(i);
}
}
if (before_text === display_text) {
removeEventListener(Event.ENTER_FRAME, change_text);
}
before_text = display_text;
display_textinput.text = display_text;//mxmlのTextInputへ
}
まだ効率のよい方法がありそうなので、改善点などありましたらご教授願えるとありがたいです。
Home > actionscript
- Search
- ezzy's latest bookmarks (delicious)
-
- ホメオパシーに信頼を寄せてきた皆さんへ|ほたるいかの書きつけ
- プロのサーバ管理者がApacheのStartServers, (Min|Max)SpareServers, MaxClientsを同じにする理由 - blog.nomadscafe.jp
- The Heavy Metal Band Site
- Magento - Wiki - Using Collections in Magento
- 他人が肯定しても、自己否定的な人間は自分を肯定できない:こころの肥溜め:So-netブログ
- お金が人を幸福にしない理由:心理学実験から | WIRED VISION
- Interactive Infographic of the World's Best Countries - Newsweek
- The Web Is Dead. Long Live the Internet | Magazine
- Commercial Add Ons to Open Source Software: aheadWorks and Magento — Open Source Strategies, Inc.
- Rule number one in Magento extension development • Inchoo
- Feeds