[JSFL]シンボル内の静止テキストのサイズ、フォントを変更するJSFL
製作経緯はこんなかんじ。
e-ラーニング系のコンテンツをタイムラインのアニメーションで製作中のこと。
静止テキストのモーショントゥイーンを大量にステージ配置。
雛形できたら大量生産するぜー、と5ファイルくらい作ってたところで、ここにきてテキスト関係の仕様の提示。
OH MY GOD(ってかちゃんと確認しないで作り始めたボクが悪い)
フォントサイズの変更、フォント色の変更、フォントの変更。。。
1個1個MCの中に入って静止テキストを変更するのめんどくさい。。。
1ファイルあたりMCが10個以上あるし。。。
!そうだ!これ、JSFLでできるんじゃね!?
とこんな感じ。
というわけで以前作ったソースをちょろっと変更してできたのはこんな感じ。
使い方
色を変更したいMCをライブラリで選択し(複数OK)、コマンドを実行。
それぞれ値を入力するダイアログがでるので値を入力すればOK。
※内部にテキストフィールドが1個だけあるようなシンボルの変更を想定してますのでそれ以外はどうなるかわかりません。。。
◆フォントサイズ変更
var doc = fl.getDocumentDOM();
var num = prompt(“フォントサイズを入力”, “18”);
var items = doc.library.getSelectedItems();
for (var i = 0; i < items.length; i++) {
doc.library.editItem(items[i].name);
doc.selectAll();
doc.setElementTextAttr('size',num);
doc.exitEditMode();
}
[/sourcecode]
◆フォント変更
[sourcecode language='js']
var doc = fl.getDocumentDOM();
var fontName = prompt("フォントを指定", "A-OTF 新ゴ Pro L");
var items = doc.library.getSelectedItems();
for (var i = 0; i < items.length; i++) {
doc.library.editItem(items[i].name);
doc.selectAll();
doc.setElementTextAttr('face',fontName);
doc.exitEditMode();
}
[/sourcecode]
※ここで引っかかったのはフォントの指定。
フォント名を指定するときに、flashのヒストリパネルに表示されるjsflをそのまま使ったらフォントが反映されない。
たとえば、新ゴProのLを指定したいときには、
jsflには、setElementTextAttr('face','ShinGoPro-Light');と表示されたのでそのままコピペしたら動作しない。
フォント名を取得するサンプルで取得したフォント名を使用すると上手くいった。
setElementTextAttr(‘face’,’A-OTF 新ゴ Pro L’);ってな感じになります。
この差異の原因はFlashが日本語版か英語版かってことなのかな、まぁよくわからん。
おまけ
色と、フォントと、サイズをいっぺんに変更できるやつ
◆いろいろいっぺんに変更
var doc = fl.getDocumentDOM();
var num = prompt(“フォントサイズを入力”, “18”);
var fontName = prompt(“フォントを指定”, “A-OTF 新ゴ Pro L”);
var color = prompt(“テキストの文字色を入力”, “#000000”);
var items = doc.library.getSelectedItems();
for (var i = 0; i < items.length; i++) {
doc.library.editItem(items[i].name);
doc.selectAll();
//サイズ変更
doc.setElementTextAttr('size',num);
//フォント変更
doc.setElementTextAttr('face',fontName);
//色変更
doc.setFillColor(color);
doc.exitEditMode();
}
[/sourcecode]
一応、一式ダウンロードはこちら。
Tweet
1 Comment
[…] 東京てらこでの発表ネタとして以前作ったものを少し改造しました。 基本用途は同じですので上のリンク先を御確認ください。 […]