2010年3月26日金曜日

Flash Builder 4 のキーボードショートカットを編集する

なんだか魅力的な機能が満載とあったので、Flash Builder 4 の試用版をダウンロードしてみました。ひと月程 FDT を利用して、サクサクコーディングを楽しませてもらったので、Flash Builder 4 がどんな感じなのか、楽しみです。

とりあえず『Getter/Setter を生成する』機能を試してみようと思ったのですが、JDT みたいに、まとめて生成してくれるわけじゃないんですね。ちょっと残念。ひとつずつ設定するのにショートカットが割り当てられていないと不便極まりないので、設定しました。

[ウィンドウ] - [設定] - [一般] - [キー]

フィルタがあるので、メニューにある名前でフィルタしてあげると便利です。

2010年3月25日木曜日

GoogleIMEJaCacheService.exe

ふとタスクマネージャを見てみたら、『GoogleIMEJaCacheService.exe』とぷプロセスが50MBくらい食ってました。何者かと調べてみたら、最新版では辞書データをメモリ上へ常に読み込んでおくことで、変換時の辞書読み込み速度を向上するという機能らしいです。メモリに余裕が無いわけではないけど、切ることができるようなので、切ってみます。

言語バーの設定から、Google日本語入力のプロパティを表示して、その他タブをクリック。「オンメモリ辞書の設定」の、設定変更ボタンをクリック、「辞書を常に物理メモリに配置し、変換を高速化する」のチェックを外してクリックで完了です。

とりあえず様子見。

2010年3月19日金曜日

Evernote の赤線が気にくわない

Evernote 3.5からスペルチェック機能がついたらしいけど、普通に日本語を入力しているつもりでも、やたらと赤線が表示される。なんで?って思うことが多々あり、非常にうっとうしいので、表示を消すことにしました。


[ツール]-[オプション]-[スペルチェックタブ]にて、『タイプ中にスペルチェック』のチェックを外すでOKです。

スペルチェックの必要なメモは、最後にスペルチェックしたらいいしね。

2010年3月10日水曜日

zlib形式で圧縮したデータをAS3.0で読み込む

Flashとwebサーバとのやりとりで、圧縮+暗号化を利用して欲しいという話がありました。調べてみたところ、Flash Player は標準で zlib アルゴリズムのみサポートしているとの事なので、それを利用することにします。Adobe AIR は、deflate アルゴリズム(GZIP などで用いられるらしい)も、利用することが出来るようです。

  1. package   
  2. {  
  3.  import flash.display.Sprite;  
  4.  import flash.events.Event;  
  5.  import flash.net.URLLoader;  
  6.  import flash.net.URLLoaderDataFormat;  
  7.  import flash.net.URLRequest;  
  8.   
  9.  public class Main extends Sprite   
  10.  {  
  11.   
  12.   public function Main():void   
  13.   {  
  14.    var req:URLRequest = new URLRequest("compress_sample.php");  
  15.    var loader:URLLoader = new URLLoader(req);  
  16.      
  17.    // ダウンロードするデータ形式をバイナリに指定する。  
  18.    loader.dataFormat = URLLoaderDataFormat.BINARY;  
  19.      
  20.    loader.addEventListener(Event.COMPLETE, function(event:Event):void   
  21.    {  
  22.     try {  
  23.      // zlib形式で圧縮されたデータを解凍する。  
  24.      loader.data.uncompress();  
  25.     } catch (e:Error) {  
  26.      trace(e.message);  
  27.     }  
  28.     var str:String = loader.data;  
  29.     trace(str);  
  30.    });  
  31.      
  32.    loader.load(req);  
  33.   }  
  34.  }  
  35. }  

今回はwebサーバはPHPを利用するので、PHPでの例は以下の通り。

  1. $message = gzcompress('このメッセージを圧縮して返します。', 9);  
  2.   
  3. header('Content-Type: application/x-gzip');  
  4.   
  5. echo $message;  

返信するデータは、JSON 形式などでも同様に扱うことができます。XML 形式でも多分一緒と思います。

twtr2src

少しtwtr2srcを利用して、Twitter のつぶやきをまとめて投稿してみたけど、何か違う気がしたのでやめました。便利なサービスなんだけど、ノイズっぽいのよなぁ。RSSだけ提供してくれるサービスとかないかな。

2010年3月4日木曜日

getter setter メソッドの型について

get set キーワードは、プロパティに直接アクセス出来るように見えて、そのアクセサをちゃんと用意してあげられるので、コード的の見た目的にいい機能だなと思っていたんですが、get set キーワードで作るアクセサは、その型を一致させる必要があるみたい。

  1. class SuperClass0  
  2. {  
  3.  // ...  
  4. }  
  5.   
  6. class SubClass0 extends SuperClass0  
  7. {  
  8.  // ...  
  9. }  
  10.   
  11. //-----------------------------------------------------------  
  12. // get set キーワードを使う場合(エラーになる)  
  13. //-----------------------------------------------------------  
  14.   
  15. class SuperClass1   
  16. {  
  17.  protected var _class0:SuperClass0;  
  18.    
  19.  protected function set class0(value:SuperClass0):void   
  20.  {  
  21.   _class0 = value;  
  22.  }  
  23. }  
  24.   
  25. class SubClass1 extends SuperClass1  
  26. {  
  27.  protected function get class0():SubClass0  
  28.  {  
  29.   return SubClass0(_class0);  
  30.  }  
  31. }  
  32.   
  33. //-----------------------------------------------------------  
  34. // 関数を定義する場合  
  35. //-----------------------------------------------------------  
  36.   
  37. class SuperClass2  
  38. {  
  39.  protected var _class0:SuperClass0;  
  40.    
  41.  protected function setClass0(value:SuperClass0):void   
  42.  {  
  43.   _class0 = value;  
  44.  }  
  45. }  
  46.   
  47. class SubClass2 extends SuperClass2  
  48. {  
  49.  protected function getClass0():SubClass0  
  50.  {  
  51.   return SubClass0(_class0);  
  52.  }  
  53. }  

とあるクラスのインスタンスを親クラスに持たせておいて、派生クラスで利用するときは、必要な型にキャストして利用しようとしたんだけど、get だけキャストして型を変えたりすると、『Error: Accessor types must match.』とエラーが出ます。

set を子クラス毎に用意したらいい話なんやけど、親クラスにもたせてあげれば用意する必要のない setter を作るのも好ましくない。get set キーワードで作成したアクセサは、クラス内で参照するのにも利用するし、コード的にも綺麗。関数を用意すると大丈夫なんだけど、クラス内で使うにはちょっと不恰好だなぁとか。

2010年3月2日火曜日

SWC ファイルの作成

FlexSDK の compc を利用すれば、フォルダを指定して SWC が作れます。compc の居場所はwindows だと、以下の場所にあります。MacOS はまた調べる

C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\bin

書式は以下の通り。

compc -include-sources [対象フォルダ名] -output [出力ファイル名]