テキスト:文字
Sample:文字列操作
テキスト、文字列操作のサンプルです。
1.タイム表示
- セルアニメでよく使う[秒+コマ]という形式でTimeを表示するExpressionです。
- まずGlobal objectのtimeToTimecode( ) メソッドで現在のTimeを取得します。
- このメソッドの返り値はStringです。変数 fullTimeに代入します。
fullTime=timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 24, isDuration = false)
- 結果 00:00:05:12
- この様になります。次に後半の[秒:コマ]の部分だけを抜き出します。
sec=fullTime.substring(6,8)
- substring()でなくてsubstr( )を使う方法だと次のようになります。
koma=fullTime.substr(9,2)
- そして秒とコマを ”+” でつなぎます。
sec + "+" + koma
- 結果
- 05+12
- 別の方法として、split( )を使うことも出来ます。
- split( )を使うと 00:00:05:12が[時]・[分]・[秒]・[フレーム]それぞれに分けて配列に入ります。
- 秒とコマがそれぞれ配列の[2]と[3]に入っているのでそれを取り出し、つなぎ合わせます。
sec=fullTime.split(":")[2];
koma=fullTime.split(":")[3];
sec + "+" + koma
2.ファイル名
- フッテージレイヤーの名前から拡張子を除いたファイル名だけを表示してみます。
- 例としてTest.mov というファイルを使います。
- まずレイヤー名を取得して変数 fullNameに代入します。
fullName=thisComp.layer("Test.mov").name;
- substring( ) を使いたいので、2つめの引数(ピリオドの位置)を得るためにlastIndexOf( )を使います。
- 返り値を変数[dot]に代入します。
dot=fullName.lastIndexOf(".");
- 最後にsubstring( ) を使ってピリオドの手前の文字までを抜き出します。
fullName.substring(0,dot)
3.ランダム文字
- アルファベット[a-z]をランダムに表示するExpressionを作ってみます。
- 乱数を発生させるメソッドramdom( )は数字だけしか出しません。そこで 数字を文字に関連付けるためにキャラクターコード変換を使います。キャラクターコードとは文字や記号をコンピュータで扱うために、文字や記号一つ一つに割り当てられた固有の数字のことです。
- アルファベットの"a"はキャラクターコードでは[97]、"z"は[122]ですので97から122までの数字をランダムに発生させ、その数字を文字に変換すればOKです。
- randomの返り値を整数化するのにMath.roundで四捨五入します。
chCode=Math.round(random(97,122));
String.fromCharCode(chCode)
- 一文字では寂しいので10文字に増やしてみました。
- for ループを使って文字を10回発生させて文字列を作ります。
var sum="";
for ( i=1 ; i<=10 ; i++){
chCode=Math.round(random(97,122));
sum+=String.fromCharCode(chCode);
}

前のページへ