forked from: FlashTextEngine の真価 f.f.: FTE(FlashTextEngine)を使ってみる on 2010-1-29
最も FlashTextEngine の真価が発揮される文章.
出典; http://beebee2see.appspot.com.nyud.net/d/agpiZWViZWUyc2VlchQLEgxJbWFnZUFuZFRleHQYweMgDA.jpg
勢いでやった.反省はしていない.
/**
* Copyright kkstudio2007 ( http://wonderfl.net/user/kkstudio2007 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/1pIq
*/
// forked from keim_at_Si's FlashTextEngine の真価 f.f.: FTE(FlashTextEngine)を使ってみる on 2010-1-29
// forked from sakusan393's forked from: FTE(FlashTextEngine)を使ってみる on 2010-1-29
// forked from komatsu's FTE(FlashTextEngine)を使ってみる on 2010-1-29
//
// 最も FlashTextEngine の真価が発揮される文章.
// 出典; http://beebee2see.appspot.com.nyud.net/d/agpiZWViZWUyc2VlchQLEgxJbWFnZUFuZFRleHQYweMgDA.jpg
// 勢いでやった.反省はしていない.
package {
import flash.text.engine.TextLine;
import flash.text.engine.TextBlock;
import flash.text.engine.TextElement;
import flash.text.engine.ElementFormat;
import flash.text.engine.FontDescription;
import flash.text.engine.EastAsianJustifier;
import flash.text.engine.LineJustification;
import flash.text.engine.TextRotation;
import flash.display.Sprite;
import caurina.transitions.Tweener;
public class main extends Sprite {
public function main() {
var sp:Sprite = new Sprite();
sp.graphics.beginFill(0x000000,0.1);
sp.graphics.drawRect(0,0,465,400);
sp.y = 32;
addChild(sp);
//表示したいテキスト
var str:String = " 我们平时会觉察到自己的影子吗?\n\n 身体和这空间中的投影到底有什么关系呢?这正是关注的问题。通过一套复杂的视频投影系统将参观者的身体和反应态度紧密相连。\n 只要有参观者在投影仪照亮的区域走动,他的影子就会被捕捉下来,并被二次投影到屏幕上,进而触发一系列不可预料的交互反应。有时可能毫无反应,有时影子会从一边游荡到另一边,有时影子之间呈现镜像。当参观者的运动穿越某个投影时,影子就会突然崩塌或简单地溶化掉。\n\n 个体出世后,身体与自己的影子——身体之灵或灵的身体——通常是一体的。身体看不到自己的影子,就像眼睛看不到眼睛。除非在一种特别的光亮照射下,影子才会与自己的身体分开,我才可能看到自己的影子—— 还得看我站在什么位置,与光处于什么关系。一个人要站到可以让自己身体的影子显露出来的有光的地方,不是因为身不由己,就是由于忘乎其形(身体)。";
//フォント書式
var fontDesc:FontDescription = new FontDescription();
fontDesc.fontName = "MS 明朝";//"Kozuka Mincho Pro M";
//エレメントのフォーマット
var format:ElementFormat = new ElementFormat();
format.locale = "ja";//テキストのロケール。jaだと日本語。
format.fontSize=14; //18
format.fontDescription = fontDesc;//FontDescription形式のデータを設定
//テキストエレメントを作る
var txtEle:TextElement = new TextElement(str , format);
//テキストブロック
var txtBlock:TextBlock = new TextBlock();
txtBlock.textJustifier = new EastAsianJustifier("ja",LineJustification.UNJUSTIFIED);//ALL_BUT_LAST
txtBlock.lineRotation = TextRotation.ROTATE_90;//縦書きにする
txtBlock.content = txtEle;//テキストエレメントをコンテンツとして設定
var txtW:uint = 365;//1行あたりのピクセル数にする予定
var textLine:TextLine= txtBlock.createTextLine(null , txtW);
var posX:uint = sp.width;//textLineのX座標用
var posY:uint = 10;//textLineのY座標用
var cnt:uint = 0;//各textLineの個別の条件を与えるための変数
while(textLine != null){
//TextLineオブジェクトを参照している、textLine
//変数の参照粋ォnullになるまで繰り返す。
sp.addChild(textLine);
cnt++;
posX -= (textLine.width + 10);//12//textLineの幅+マージン分、次座標を修正
textLine.x = posX;
textLine.y = posY+50;
textLine.alpha = 0;
Tweener.addTween(textLine , {y:posY , alpha:1 , time:0.5 ,delay:cnt/10, transition:"easeOutBack"});
textLine = txtBlock.createTextLine(textLine , txtW);
//現在のtextLineから、次のTextLineオブジェクトを参照
}
}
}
}