- 締切済み
ダイナミックテキストを回転させたい
DPEの回答
- DPE
- ベストアンサー率85% (666/776)
ダイナミックテキストの回転は、#1の方がおっしゃる通り、フォント情報を埋め込んでおくことで利用できるようになります。 ただし、フォントの情報を埋め込むとは、文字1つ1つの情報を、描画ツールで描いた絵と同様に、ベクトルデータの形で記録することです。 日本語全てを埋め込むと、ファイルサイズは2メガ3メガが当たり前の大容量になり、ネットで公開した時のダウンロードはもちろん、ムービーのプレビューやパブリッシュにも時間がかかるようになりますので、ご注意ください。 -------------- 縦書きは静止テキストのみ可能で、ダイナミックテキストでは利用できません。 (「プロパティ」パネルにある、テキストの方向を設定するボタンが、ダイナミックテキストの場合は選択できなくなります) しかし、”ー”や”~”といった文字を利用しない1行のテキストならば、ちょっと工夫すると縦書きのように見せることはできます。 ダイナミックテキストまたはテキスト入力に設定したテキストフィールドは、TextField クラス( Flash MX の場合はオブジェクト)で制御できます。 TextField クラスにはいろいろなプロパティがありますが、そのうちの、テキストフィールドを表示するテキストの長さに応じて自動的に伸縮するかどうかの autoSize 、文字を端で折り返すかどうかの wordWrap を使います。 autoSize はデフォルトでは none (伸縮なし)になっていて、テキストフィールドの大きさを超える長いテキストは表示されないようになっています。 これを true ・ left ・ right ・ center のいずれかにした場合は、表示するテキストの長さによってテキストフィールドの左右が伸縮します。 また、wordWrap プロパティを true にすると、テキストがフィールドの端で折り返されるようになります。 つまり、autoSize を none 以外・wordWrap を true にしておくと、行数に応じてテキストフィールドが下方にも伸張されます。 1行の縦書きのテキストとは、1文字ごとに改行が入った、複数行から成る文字列と考えることができます。 例えば、読み込むテキストに test=テ%0Aス%0Aト このような形で、最初から改行のコード( %0A または %0D )を挿入しておくのが手っ取り早いのですが、字数が多いと面倒ですし、テキストが見にくくなって管理も大変です。 この点は、ActionScript の String クラスを使って、スクリプトで改行を挿入すると簡単です。 ステージに配置するテキストフィールドは、1文字だけ表示できる大きさで構いません。 先述の通り、autoSize と wordWrap を設定しておくと、あとはテキストの長さに応じて自動的にサイズが変わります。 今回は1行が1文字になりますので、autoSize の設定は left ・ right ・ center のどれでも同じです。ちなみに、true は left と同じ機能です。 例えば、1文字しか表示できないテキストフィールド”txt”がステージにあり、読み込むテキストファイルが test.txt で、test.txt の内容が test=縦書きのテスト だとします。 このテキストを読み込み、縦書きのように表示するスクリプトは、大体、次のようになります。 このスクリプトはフレームに設定してください。 (各行頭に全角のスペースが入っています。コピーする際はご注意ください) //テキストフィールドの設定 txt.autoSize = "left"; txt.wordWrap = true; //テキストの読み込み System.useCodepage = true; load_obj = new LoadVars(); load_obj.load( "test.txt" ); //読み込み完了時の処理 load_obj.onLoad = function( success ) { var temp , char , str , i; if( success ) { temp = new String( this.test ); str = new String( "" ); //読み込んだ文字列に、1文字ごとに改行を挿入 for( i = 0; i < temp.length; i++ ) { //1文字ずつ取り出し、改行を加えて新しい文字列を作る char = temp.charAt( i ); str = str.concat( char , "\n" ); } //テキストフィールドに表示 _root.txt.text = str; } }; 文字列の操作ですが。 ループを利用して、読み込んだ文字列の先頭から1文字ずつ取り出し、その文字に改行コード( ActionScript では \n )を追加して str という文字列に順に連結します。 str は最初は空っぽですが、ループを繰り返していくうちに、読み込んだ文字列の1文字ごとに改行が挿入された文字列が入っていくという仕組みです。 text はテキストフィールドに表示する文字列を管理しているプロパティで、書き換えると表示する内容を更新することができます。 縦書きの場合はプロポ-ショナルフォントはあまり意味がありません。むしろ、字の幅が不揃いでズレてしまい、見辛くなることもありますので、固定幅フォントのご使用をオススメします。 1つのテキストフィールドには1行しか表示できませんが、複数のテキストフィールドを用意して、1行に表示するテキストを1つずつ変数に分けて同様の要領で表示すると、複数行の縦書き表示も可能かと思います。 ただ、所詮は、本来横書きのものを1行に1文字ずつ表示して、縦書きに見せかけているにすぎません。”ー”や”~”は横向きのままになってしまいますし、小さい字( ぁ ぃ ぅ ぇ ぉ っ ゃ ゅ ょ ゎ)は、字の向きは問題ないものの、レイアウトが少々不自然になりますが、そのあたりはご容赦ください。 あまりスマートとは言えませんけれど、よろしければご参考までに。
関連するQ&A
- EXCEL2003 テキストボックスの回転
EXCEL2003でテキストボックスを使用しています。 テキストボックスを回転させたときに一緒に文字も回転させたいのですが 何か良い方法はないでしょうか?
- ベストアンサー
- その他MS Office製品
- Text Analyzerの文字が回転する
テキストエディターText Analyzerをインストールしたところ、文字を入力すると左に90度回転されて表記されてしまいます。メニューバーからいろいろな項目をチャレンジしてみましたが、どうにもなりません。どなたか普通の横書き表示に直す方法を教えてください。よろしくお願いします。
- ベストアンサー
- フリーウェア・フリーソフト
- テキストボックスを回転させたい
ワードでテキストボックスに入れた文字を回転させたいのですがその方法を教えてください。 メタファイルで保存、コピーしてと言われましたがその方法が よく理解できません。 よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- Word テキストボックスで文字を中心に表示する方法
テキストボックスを作成して、文字を中心(一行のうちの中心ではなく、テキストボックス縦位置の真ん中)に表示したいのですが、どこかにそのようなレイアウト設定は有るのでしょうか? エクセルは配置で横位置・縦位置を選んで中央揃えのような機能が有りました。 同じような表示方法があればお教え下さい。
- ベストアンサー
- オフィス系ソフト
- visual basicのテキストボックスについて
ビジュアルベーシックでカレンダーを作ろうと考えてます。 日付のところをテキストボックスに数字を入れて、カレンダーに見立てようとしています。 でも、そのテキストボックスに値を代入するとき、一つ一つに textbox1.text=1 textbox2.text=2・・・・ と書いていくのはすごくメンドくさく、非効率的です。 今、自分が考えている解決方法は、javascriptにでてくるdocument.forms[0].elements[a].valueのようなテキストボックスなどの名前を指定しなくても値を代入する方法です。 でも、ビジュアルベーシックにこのような操作が可能なのかわかりません。 知っている方がいたら是非教えてください。
- 締切済み
- Visual Basic
- テキスト入力が180度反転してしまう
CS2を使用していて、テキスト入力をしようとするとなぜか文字が180度ひっくり返った状態になってしまいます。 入力後イチイチ回転するのは面倒なのですが、治す方法はないのでしょうか? もう一点質問ですが、adobeリーダーで読み込むと横向きで表示されるPDFを読み込むと縦になってしまい、一々回転しないといけません。 もともと横に表示することはできないのでしょうか? それともPDFファイルそのものの問題でしょうか?
- テキストボックスに変数を表示させたい
access2003です。 フォーム1にテキスト0を配置し vbaで Private Sub Form_Open(Cancel As Integer) Dim 文字列 As String 文字列 = "a" End Sub と作成しました。 このときフォーム1をダブルクリックして開いた時に テキスト0に文字列に代入した変数を表示させるにはどうすればいいのでしょうか? テキスト0のコントロールソースに =[文字列] とやっても #Name? になってしまいます。 どうすれば読み取った変数をテキスト0に表示させることが可能なのでしょうか? よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- jpgとテキストボックスを一体化するには?
Jpgの地図をWord2007に挿入し、その地図に文字をテキストボックスで加えました。次にその地図を伸縮しても、文字は伸縮されません。 テキストボックスを地図と一体化する必要ありそうですが、その方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- WORDでのテキストボックスについて
こんにちわ。 WORD文書を作成しているのですが、テキストボックスを回転させる方法を教えていただけませんか? テキストボックスの文字を90度回転させたいのです。 が、ヨコではなくタテのテキストボックスを使用すると180度回転してしまいます。 どうしたら表示できるのか、教えてください。 よろしくお願いします。
- 締切済み
- オフィス系ソフト