人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

aftereffectsのテキストのエクスプレッションですが、

コンポジション名:サンプルコンポ
レイヤー名:サンプルレイヤー
のテキストのエクスプレッションに

var test1="ほにゃらら";
var test2="はははは";
text.sourceText=(test1);

とすると 「ほにゃらら」という文字が表示されますが、

これを同じコンポジション内の別レイヤーに
サンプルレイヤーで宣言した
「test2」の値を表示させるには
どういうプログラムを書けばよいのでしょうか?

また、こうしたテキストを2行に表示させることは可能なのでしょうか?

●質問者: hashimajc
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3
●100ポイント

コードの一部を別のレイヤーから参照する、というのではありませんが、テキストレイヤーにスクリプトのコードを書いておいて、別のレイヤーのスクリプトから参照する、という手があるようです。
http://aekami.ldblog.jp/archives/51559057.html

hoge という名前のテキストレイヤーに、以下のコードを書いておきます。

var test1="ほにゃらら";
var test2="はははは";

で、それを使いたい別のレイヤーでは、以下のように使います。

eval(thisComp.layer("hoge").text.souceText.value);

// ここで、test1 や test2 が使える


テキストを複数行で表示させるには、改行コードを挟めば良いと思います。

text.sourceText=(test1 + String.fromCharCode(13) + test2);

hashimajcさんのコメント
eval(thisComp.layer("hoge").text.sourceText.value); // ここで、test1 や test2 が使える text.sourceText=(test1 + String.fromCharCode(13) + test2); と記述すると 「クラス global には test1 というプロパティまたはメソッドがありません」とでてエラーになります。。。。なにかまちがっているのでしょうか?

a-kuma3さんのコメント
あ、スコープの問題かな。 hoge レイヤーのコードから、var を取り除いたら、どうなるでしょう? >|javascript| test1="ほにゃらら"; test2="はははは"; ||<

hashimajcさんのコメント
取り除いてもできませんでした。。。

2 ● fiwa
●200ポイント

まずテキストを2行に表示させる方法ですが、"¥r"を使えばできるはずです。
(ひょっとしたらOSによっては、半角の円記号(¥)とバックスラッシュとを書き換えてやる必要があるかも知れません)

//サンプルレイヤー
var test1="ほにゃらら";
var test2="ははは";
text.sourceText=(test1)+"\r"+(test2);

別レイヤーのエクスプレッションから”サンプルレイヤー”のほうで宣言しただけの値を使用することはできない感じです。
上のサンプルレイヤーですでに使用したsourceTextから"¥r"で分割して、test2の部分だけを表示させる、ということなら可能です。

piyo=eval(thisComp.layer("サンプルレイヤー").text.sourceText);
piyo.split("\r")[1];//[0]で”ほにゃらら”、[1]で”ははは”

Adobe After Effects * エクスプレッションの基本

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ