_("Message")はメッセージを翻訳する。
n_("Car", "Cars", 2)は複数形判別つきの翻訳。
N_("Message")は何もしない。poを作るときにメッセージIDを拾わせるときに使う。
Ruby-GetTextの三つのカッコ
zshで大文字小文字を区別せず補完
.zshrcにこう書く。
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
vimにちょっと慣れてきた頃に覚えた操作
h,j,k,l,i,a,y,o,uあたりを考えずに使えるようになってきました。というわけで最近覚えてベンリィなキー操作。
| cw | カーソルの下の単語末尾までを置き換える(削除してインサートモードへ)。wは移動なのでcf{(次の中括弧までを置き換え)とかc3j(三行削除して置き換え)とかも可能。 |
| == | インデントを調整。ヴィジュアルモードで複数行選択してから=でもOK。ファイル全体ならggvG= |
| J | 今の行と次の行を連結。 |
FlexアプリケーションのMXML内要素を外部から参照する
Flex 4で、メインのMXML内の要素を他のクラスから参照する方法です。
「Flexアプリケーション」を作り始めると、まるでMXMLの中にコードを書くのがデフォかのようになりますが、<fx:Script>の中にコードが増えていくのはあまり気持ちよくないですね。そこで別のクラスにエントリポイントを作ることになります。これはApplicationCompleteイベントにハンドラをつけるだけです。
MyFlexApp.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
applicationComplete="MyEntryPointClass.main()">
<!--UI要素とかの定義...-->
</s:WindowedApplication>
さて、MyEntryPointClassからこのMXMLを参照する方法です。
このMyFlexApp.mxmlは
- 実行時にはMyFlexAppクラスのインスタンスとして存在する。
- クラス名はアプリごとに違う。MXMLのファイル名をクラス名として持つらしい。
- Applicationのサブクラス。
- mx.core.FlexGlobals.topLevelApplicationを使えばどこからでも参照できる。
- ただしtopLevelApplicationはObject型なので、MyFlexApp型へキャストしないと使えない。
というわけで、でき上がったコードはこんな感じ。
MyFlexApp.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
applicationComplete="MyEntryPointClass.main();">
<s:Button label="Button" id="theButton" />
</s:WindowedApplication>
MyEntryPointClass.as
package{
import flash.events.MouseEvent;
import mx.core.FlexGlobals;
import spark.components.Application;
public class MyEntryPointClass{
public static function main():void{
var app:MyFlexApp = mx.core.FlexGlobals.topLevelApplication as MyFlexApp;
app.theButton.addEventListener(MouseEvent.CLICK, theHandler);
}
private static function theHandler(e:MouseEvent):void{
// yada yada yada...
}
}
}
やったね!