- 315 名前:名前は開発中のものです。 mailto:sage [2010/07/07(水) 01:05:51 ID:oyqeFVJb]
- 単純に「使用可能なフォントの配列」を用意してやってそれを参照すりゃいいんじゃないのかい。
オレが前に書いたコードだとこんな感じだったけど。(KAGではなくTJSとして実行) // フォントリスト作成 var fonts = font.getList(fsfNoVertical); var use_fonts = []; /* use_fontsに日本語文字の含まれるフォントを登録する 細かく調べるのが面倒なのでとりあえず『フォント名に日本語が含まれている』奴を */ for(var i=0; i<fonts.count; i++){ if( /[^a-zA-Z 0-9!-@&\[-`{-~]+/.test(fonts[i]) ) use_fonts.add(fonts[i]); } var currentFont = use_fonts.find(sf.fontFace) | 0; // 現在選択済になっているフォントをその中から探す。ここで見つかるのはフォント名ではなく、use_fonts配列の中の「何番目にあるフォントが指定されているか」という情報 // 現在選択済フォント名(例: MS明朝とか)はsf.fontFaceに記憶させる あとは「次のフォント」もしくは「前のフォント」ボタンを押した時に、上記のuse_fontsを参照して if(currentFont < 0) currentFont = use_fonts.count-1; if(currentFont > (use_fonts.count-1)) currentFont = 0; sf.fontFace = use_fonts[currentFont]; for(var i=0; i<kag.fore.messages.count; i++){ kag.fore.messages[i].comp.setDefaultFont(%[face:sf.fontFace]); kag.fore.messages[i].comp.decideSizeChange(); kag.back.messages[i].comp.setDefaultFont(%[face:sf.fontFace]); kag.back.messages[i].comp.decideSizeChange(); } みたいな具合に「選択されたフォントをすべてのメッセージレイヤに適用する」処理を書いてやればよろしいんじゃないかしら。 ちゃんと動くかどうかは知らないけど
|

|