Archive for 2009/5/28

どうにかして、Flexで日本語フォントのみを抽出するということができないのでしょうか?

調べたのですが、どうしてもわかりませんでした。
でも、やたらと使わないフォントの一覧があってもこまります。
(ちなみに、フォント一覧をみるにはこちらから)

んー、考えたあげく、フォント名が日本語のフォントという考え方にすることにしました。
まあ、日本語フォントが日本語名になっていないということはまれでしょう。多分。

さらに、たいていの人は、複数の言語のフォントなんてないでしょうということで、
さらに、マルチバイトのフォント名は、「日本語フォント」だー。という強引な結論にしました。

まあ、ほとんどこれで大丈夫でしょう。
だめになったときに、それはそれで考えるということで、マルチバイトのフォント名一覧を作成するという命題です。

[AS]
var fontArray:Array = Font.enumerateFonts(true);
var janList:Array = new Array();
var ba:ByteArray = new ByteArray();
var cnt:Number = 0;
for(var i:Number = 0; i var ft:Font = fontArray[i] as Font;
ba.writeUTFBytes(ft.fontName);
if(ba.length > ft.fontName.length){
janList.push(ft);
}
ba.clear();
}
ba = null;
[/AS]

ちょっと注意点ですが、ここでbytearray.clear()を使っています。
これは、バージョンが10からですので、ご了承を。。。

私自身、なぜと思ってしまったので・・・
もっと、スマートなやり方を知っている方がいたら教えてください。

久々のflex mx:Treeのネタです。といっても、非常に基本的なことです。
Treeのアイテムを開いたり、閉じたりするには?

これ、開くには以前、flex:Treeで自動的にフォルダを展開させるには でTreeのアイテムにドラッグ&ドロップでドロップしようとしたときに、
自動的に開くようにするということで述べましたが、今回は閉じるには?を調べました。
久々のflex mx:Treeのネタです。といっても、非常に基本的なことです。

というのも、デフォルトで「閉じる」「開く」は矢印をクリックすればできるのですが、やっぱり、フォルダとして機能している場合、つまり、他のアイテムの親としてしか機能しないアイテムをクリックすると、開いたり、閉じたりしてほしいなーと思ったのがきっかけです。

だって、矢印が小さいんですもん。

最近、できるとはわかっているよりも、できるのか?できないのか?
のほうを優先してしまい、結構、基本的な部分がはて?どうやるんだ???のままでほったらかしなので。

さて、話は戻って、Treeで、「閉じる」、「開く」を実装するためには、
もちろん、「開く」、「閉じる」のメソッドが必要ですが、「今は開いているの?、閉じているの?」がわからないといけないですよね。

さて、それでは、クリックのイベントで処理をおこなうようにしましょう。

[AS]
tree.addEventListener(ListEvent.ITEM_CLICK,_fireClickItem);
[/AS]
次に、クリックされた時の処理は
[AS]
protected function _fireClickItem(e:ListEvent):void{
var tree:Tree = e.currentTarget as Tree;
var obj:Object = tree.selectedItem;
if(!tree.isItemOpen(item.selectedItem)){
tree.expandItem(obj,true,true);
}
else{
tree.expandChildrenOf(obj,false);
}
}
[/AS]
さて、閉じるときと、開くときでことなったメソッドを使っています。
expandChidrenOf(item,boolean)のドキュメントをみると
“指定したアイテムの配下にあるすべてのツリーを開くか、または閉じます。”
とあります。
すべて、開かれても困るので、開くときは、expandItemを使っていまし、
閉じるならすべて閉じたほうがいいかなと使い分けています。

この辺の動作は好みかもしれませんが、深ーいツリーで、やっぱり浅い階層のものを見るときに「閉じて」、「開く」ってことを私自身やってしまうので・・・

でも、ふつうは両方ともexpandItemでいいのでしょうね。
Windowsのエクスプローラもそうなっていることですし・・・・

ソフトウェア&ライブラリ



ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
カレンダー
2009年5月
« 4月   6月 »
 123
45678910
11121314151617
18192021222324
25262728293031

カスタム検索
RSS
Add to Google
にほんブログ村 IT技術ブログへ