最近はベイスターズ観戦日記と化しております

さぶれの日記
http://flex91.blog19.fc2.com/  presented by さぶれ@

プロフィール


さぶれ@

Author:さぶれ@
Webアプリなんぞ作っている会社に勤めるサラリーマン。自分の技術力のなさを嘆きつつ、日々勉強中。


最近の記事



カテゴリー



月別アーカイブ



スポンサーサイト

--/--/-- --:--|スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

EventDispatcherを継承しないで自作イベント発行クラスを作る。

2008/07/03 12:59|FlexTB:0CM:0

ほう・・・、目から鱗です。

通常、自作クラスでイベントの発行を行いたい場合、EventDispatcherを自作クラスが継承してイベント発行の機能を実装します。しかし、EventDispatcherを継承していない親クラスを継承したいときもあるはずです。そんな時は、IEventDispatcherをインプリメントして委譲で機能を実現すれば良いようです。


スポンサーサイト

MouseEventのbuttonDownプロパティ

2008/06/24 15:02|FlexTB:0CM:0
FlexのMouseEventには、buttonDownプロパティなんてものがあったのですね。
このプロパティでは、どのコンポーネント上でマウスダウンしたかは拾えませんが、単純にメインのマウスボタンが押されている状態かどうかを知りたいときは、便利に使えますね。
知らなかったので、メモ。

FlexでIMEのモードを制御する方法

2008/06/24 12:49|FlexTB:0CM:0
アプリケーションの使い勝手を上げるために、IMEの入力モードを場面場面で自動で制御する方法を記述します。
以下のサンプルでは、TextInputがフォーカスを取得すると、そのTextInputごとにIMEモードを変更するコードです。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:TextInput x="46" y="40" id="textInput1" focusIn="focusInHandler1(event)"/>
<mx:TextInput x="46" y="79" id="textInput2" focusIn="focusInHandler2(event)"/>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.logging.Log;
import mx.events.FlexEvent;

//textInput1がフォーカスを取得したときに呼び出されるメソッド
private function focusInHandler1(event:FocusEvent) : void {
changeIMEMode(IMEConversionMode.JAPANESE_HIRAGANA);
}

//textInput2がフォーカスを取得したときに呼び出されるメソッド
private function focusInHandler2(event:FocusEvent) : void {
changeIMEMode(IMEConversionMode.ALPHANUMERIC_HALF);
}

private function changeIMEMode(mode:String) : void {
//マシンにIMEがインストールされているか確認する。
if (Capabilities.hasIME) {
try {
//IMEを有効にして、モードを変更する。
IME.enabled = true;
IME.conversionMode = mode;
}
catch (e:Error) {
Alert.show(e.message, String(e.errorID));
}
}
}
]]>
</mx:Script>
</mx:Application>

SpacerとHBoxのパフォーマンス比較

2008/06/23 12:34|FlexTB:0CM:0
Flex アプリケーションのパフォーマンスをつらつら読んでいたところ、Spacerというクラスを発見しました。
Spacerを使うと、下のイメージのように、HBoxの左端と右端にそれぞれUIオブジェクトを配置することが可能になります。
<mx:HBox borderStyle="solid" width="400">
<mx:Button label="left" />
<mx:Spacer width="100%" />
<mx:Button label="right" />
</mx:HBox>



私は、Sapcerという存在を知らなかったので、上図のようなレイアウトをする場合、こんな感じでHBoxを入れ子にしていました。
<mx:HBox borderStyle="solid" width="400">
<mx:Button label="left" />
<mx:HBox horizontalAlign="right" width="100%">
<mx:Button label="right" />
</mx:HBox>
</mx:HBox>

気になったのが、上記二つのレイアウト方法では当然Spacerを使った方が軽いとは思うのですが、どの程度の軽さなのか?といことです。
そこで、早速測定してみました。
方法としては、スクリプトで図のようなレイアウトを1000個Applicationに追加して、その時間を測ります。
3回測定して平均を求めた結果は以下の通り。
  • Spacerを使う方法:2903ms
  • HBoxを入れ子にする方法:3318

・・・・微妙な差ですね。
正直、1000個ものUIを並べていくことはあまりないので、普段はそこまで気にしなくて良い気もします。

しかし、ちょっとしたことの積み重ねで、あっという間に重いアプリケーション動作になってしまうのも事実です。
軽快に動かないとRIAの意味が半減してしまうので、細かいノウハウを積み重ねてコーディングしていきたいものですね。

Adobeの戦略

2008/06/18 18:32|FlexTB:0CM:0
最近、javascriptをやりながらつらつらと思ったこととして、ActionScript2.0から3.0へ変わったときの変更内容についてです。
AS2.0はjavascriptと似ていますよね。で、AS3.0はJavaやC#などの言語に近くなっています。
JavaやC#をやっていた人は、AS2.0よりもAS3.0への移行の方が容易だと思います。
このことから、Adobeがエンタープライズ向けに力を入れる戦略の一環としてAS3.0へと進化させたことがよくわかります。

Adobeはここ最近Airやライフサイクルの新製品の発表などエンタープライズ向け商品が元気ですね。

こういう戦略にぶれが見えない時、企業って力を発揮する気がします。
Adobeに注目していきたいと思いました。

Amazon



ブログ内検索



RSSフィード



 |  未分類 | Flex | ActionScript3 | BlazeDS | Silverlight | 読書 | Javascript | Java読書会 | 横浜ベイスターズ | 
Copyright(C) 2008All Rights Reserved. さぶれの日記
Powered by FC2ブログ.  template designed by 遥かなるわらしべ長者への軌跡.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。