2007-01-01から1年間の記事一覧

PopUpButtonのポップアップにドロップシャドウをつける

以前から気になっていたバグですが、PopUpButtonで表示されるポップアップウィンドウに ドロップシャドウを指定しても、1ドットで切れてしまいます。 正確に言うと、開いてるエフェクト中は表示されていますが、完了後にドロップシャドウの分の 大きさを考慮…

データバインディング(1)

前回のMXMLをFlexBuilderのデザインエディタでいじって、とりあえずこんなものを作ってみました。 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Form backgroundColor="halogreen"> <mx:FormItem label="性別" backgroundColor="haloblue"> </mx:formitem></mx:form></mx:application>

アプリケーションを作ろう

Flexとは、Flash Player上で動作するプログラムを書くための言語である「ActionScript3(AS3)」で、リッチクライアントアプリケーションを作成するために、Adobe Systemsが用意したフレームワークです。もともとFlashというのはアニメーションをWeb上で見せる…

BootCamp,Parallels関連のメモ

Mac

・LeopardインストールCDに入っているBootCamp用デバイスドライバは、そのままインストールしただけでは無線LANがちゃんと動作しない。インストールしたらもう一度CDのDriversを開き、BroadComInstallerを使って上書きインストールする。・日本語が入力でき…

MacBook購入

Mac

さまざまな理由のこじつけにより、新しいノートはマックにしよう!と思い立ち、MacBookを購入しました。 Leopardモデルの2.2GHz+120GBバージョン、いわゆる「竹」モデルです。これまではMacでは役に立たん、という立場だったのですが、 ・特殊なアプリケー…

[Flex]asでカスタムコンポーネント(4)今回はmeasureをやります。measureは、measuredWidth,measuredHeight,measuredMinWidth,measuredMinHeightの値を設定するために用意されたメソッドです。 これらの値は、親コンポーネント上に置かれた際に幅や高さが不定…

asでカスタムコンポーネント(3)

ああ、ついにここにきてしまいました。 commitProperties()とupdateDisplayList()です。commitProperties()は、オブジェクトにバインディングしている様々なプロパティの変更を取りまとめるためのメソッドです。たとえば、HBoxの中のコンポーネントのひとつ…

asでカスタムコンポーネント(2)

個人的には落ち込んだり反省したりスネてみたりしている毎日ですが、仕事は相変わらずFlex一色です。 そのわりに基本的なスキルはまったく上がっていませんね。 むしろ落ちてるかも(--; 前回がやたらとウダウダ長く書いていたので、今回は的を絞ってすこしず…

asでカスタムコンポーネント(1)

なんか、昔書いたカスタムコンポーネントのエントリにトラックバックがいつの間にか張られていたり。 別に悪い気はしないけど、当時自分も勘違いしていたこととかあってこのまま置いとくのは恥ずかしくなってきたので、何回かに分けてすこし丁寧に解説してみ…

Listでスクロールバーの幅を変更する

ScrollBarの幅は固定値(ScrollBar.THICKNESS = 16)となっているため、かなりクラスをさかのぼっていかないと変更できないと考えていましたが、発想を変えてScaleXを変更すると、案外簡単に変更可能になりました。 import mx.controls.List; import mx.cont…

ItemRendererの状態をキャッシュする

ItemRenderer自体にステートを持たせたい場合(ダブルクリックで詳細をみせたい場合など)というのが存在します。ItemRenderer自身は使いまわしなので、独自のプロパティ状態を保持することが出来ません。そこでdataプロパティの中のモデルに持たせたいので…

ProgressBarのバグ

ぜんぜん関係ないはてなセリフは置いといて。Beta2のFrameworkに収められているプログレスバー。Trace文が残ってます。 indeterminate=trueに設定したProgressBarを表示するプログラムをDebugモードで実行すると、Timerイベントで延々と「Move indeterminate…

拡張された制約ベースレイアウト

Flex3Beta2より、Application,Panel,Canvasなどの制約ベースレイアウトが拡張されました。 これに伴い、Gridが非推奨になりますた(:_;)どうしてGridに関係してくるかというと、制約で行や列を定義できるようになったからです。 constraintRows,constrai…

FlexBuilder3Beta1でMXMLEditorが起動しない

以下のバグベースに上がっていますが、たまにMXMLEditorが立ち上がらなくなる場合があります。 http://bugs.adobe.com/jira/browse/FB-7931具体的な復旧方法としては、 ・エラーの出るworkspace/.metadata/plugins以下のcom.adobe.ナントカフォルダをすべて…

TreeのDataDescriptorについて

これまであまりDataDescriptorについてあまり使おうと思ったことがなかったのですが、実はTreeにDataDescriptorを指定するとチョー便利だということがわかってきました。たとえば、モデルオブジェクト自身はchildrenプロパティを持っていないことってよくあ…

EventDispatcherは継承しなくてもヨイ

ListCollectionViewのソースを何気なく見ていたら、IEventDispatcherの 実装を委譲でやっていてビックリしました。EventDispatcherってこういう使い方ができるんだ・・・ public class NewClass implements IEventDispatcher { private var eventDispatcher:Eve…

Moxie移行の際のDataGridの挙動の違いについて

まだベータではありますし、移行するひともまだまだ少ないとは思いますが、覚え書き。Flex3には新たなDataGridとしてAdvancedDataGridが用意される予定ですが、 現行と互換性のあるDataGridも、ソースレベルでかなり変わっているようです。 移行した際に確認…

スライディングサイドバーを作ってみた

VisualStudio2005のIDEで便利なものに、タブの状態で最小化できるサイドバーがあります。 アコーディオンだと枚数が増えてくるとどうしても表示領域を圧迫してしまうのですが、縦型のタブで最小化しておけるこのサイドバーは画面を広く使えるのでとても便利…

MXMLとロジックの分離

MXML中にActionScriptのロジックを埋めるのはイヤなものです。そんなにコードが汚くなるんならMXMLなんか要らない!という人も多いのではないでしょうか?現在、ロジック部分をMXMLファイルから分離するにはいくつかの方法があります。1)単純にソースを分…

シングルトン

Flexのフレームワークには何とかマネージャーというクラスがいくつかありますが、 フレームワークの中では、その名もSingletonというレポジトリクラスに対して、内部クラスの インスタンスを持たせています。 でもって、Publicなメソッドはすべてstaticメソ…

カスタムスキンとフィルターの使い分け

たとえば、コマンドを実行するボタンのためのスキン。 よーくみると、ボタンのアイコンそのものには効果がかかっていません。 ButtonSkinは、後ろにGraphicsオブジェクトでレイヤーを作って描いてるだけ。 なぜかというと、ProgrammaticSkinのupdateDisplayL…

Apollo mini Campに行ってきた

まだApolloアプリ作ったこともないのに出かけてきました。 わずか6時間で申し込み終了となっただけあって、ほぼ満席。 Mike ChambersさんとDany Dureさんがいろいろ語ってくれましたが、 基本的には勉強会でSatoshiさんが語ってくれた内容より薄めでした。 …

cacheAsBitmapの仕組み

ついつい使いたくなるcacheAsBitmapですが、内部的な動作は、次のようなものと 推測されます(パフォーマンス測定からの類推)。1.コンポーネントと同じ大きさのbitmapDataを用意する。 2.bitmapData.draw(this)ですべて書き出す。 3.書き出しの操作は…

コンポーネントをアホみたいに沢山配置する

現在会社で作成しているアプリケーションは、もともとC++で作られたものの移植です。 元ネタはいまも現役で販売されているのですが、古臭いGUIにもかかわらず顧客がついている理由。 それは「無制限に大きな有向グラフを描画できる」という一点に尽きる(失…

カスタムカーソルとコンテキストメニューが併用できない

UserGroupにも書かせていただいてますが、CursorManagerでカーソルを変更すると、設定したcontextMenuが開かなくなります。 Applicationのメニューが立ち上がるので、イベントハンドラが死んでいるか、あるいは自身が設定したカーソルのインスタンスそのもの…

UIComponentカスタムクラスのお作法

カスタムコンポーネントは要するにUIComponentを継承して作成すればいいわけですが、 うっかりすると再利用性の低いコンポーネントを作ってしまいます。 いちばんやってしまうのが「コンストラクタの引数にデータモデルを指定」。 これはなるべく避けてくだ…

コンテナとスクロールバーとswapChildren

はじめまして、s-ohiraです。 いつもは違う名前で他のブログ使ってます。なんだかHatenaは技術系の人が多くブログを書いているので、お試しです。 今日はFlex2のコンテナで苦労しました。コンテナはContainerというクラスから派生するコンポーネントです。 C…