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

おこられそう

JavaのTips書こうと思ったけど会社のコードに使ってるものだから怒られるかなあ・・

孫までディープコピー

あるObjectとArrayとVectorを孫までディープコピーする必要があったのでてすてす。 Object var t : Object = { a : { b : "c" }}; var u : Object = ObjectUtil.copy(t); t["a"]["b"] = "d"; trace(t["a"]["b"]); trace(u["a"]["b"]); d cはいおっけー Array…

EventThreadについて

個人的に結構悩んでいるのでまとめておこうと思う。最初に断っておくが主観満載である。EventThreadは、eventを処理するためのThread. run()またはそこから呼ばれた関数でひたすらevent()を並べてそれを処理するThreadのこととする。そうめんではeventListen…

XMLとArrayCollection

急に設定画面のタブリスト(mx:List)の内容が表示されなくなったのでかなり悩んでいた。 このタブリスト(TabList)のdataProviderは、設定XMLから読んだ属性値からなるArrayCollectionをdataProviderとするTabBarから、そのArrayCollection.sourceをconcatして…

mx:Windowが開いているかどうか判定する方法

あるWindowが開いているかどうか判定したい。まずWindowを開いて閉じる手順は、 new Window()する。 Window.open()する。 Window.close()する。 である。 closedを使おうとすると、1,2の間ではなぜかぬるぽっぽいのが出て使えない。詳しくは見ていないが、内…

rotation*で3D回転させた後に元に戻してもブレてる件

FlashPlayer10からDisplayObjectに新たに追加されたrotationX, rotationY, rotationZ等を使って色々したあと平面的に戻したい?ときがある。 たとえばrotationYだけ色々動かした後に0にして平面にしようとすると、文字がブレて見える。これはDisplayObjectの…

about:config風の設定画面をつくる

設定画面にも色々あるけど、設定項目が山のようにあってもそれなりに使いやすいものとして、Firefoxのabout:configがある。ただ、about:configそのままだと設定項目の解説が必要なので、各行に備考を追加したものを考えてみる。まずmxmlの設定。肝要はこんな…

TabNavigatorの罠

TLifeの設定ダイアログをつくっていてはまったので。 設定ダイアログはTabNavigatorを設置して、VBoxの中にTextInputやらDataGridをおくのだが、どうも最初から表示されないところは、ダイアログがcreationCompleteを返してもロードされていないらしい。つま…

TinyURLの解決

TLでTinyURLの解決の話がでたとき、@syo68k に突っ込まれたのだが、変換元URLに日本語が含まれる場合、TinyURLのAPIの仕様どおりに?responseURLをとろうとすると文字化けしてしまう。たとえば http://tinyurl.com/realbomb とか。 あれこれ試行錯誤したけど…

DataGridColumnのItemRendererの設定

DataGridColumnを動的につくろうと思っていじっていたが、itemRendererで少し詰まった。 mxmlでは"uwi.ui.TimelineRenderer"(カスタムレンダラーでスミマセン)みたいに文字列で指定していたが、itemRendererのデータ型はIFactory. これの実装がClassFactory…

アイコン読み込み&表示3

タイムラグがどうこうの話だが、ここらへんに書いてあった。http://clockmaker.jp/blog/2008/07/flex_image_cache/結構衝撃だった。cacheAsBitmapとかいうのは、あくまでインスタンスの中でだけキャッシュするという話で、URLを指定すると毎回読みに行ってい…

アイコン読み込み&表示2

DataGridItemRendererの中のmx:ImageにLoaderで読んだ画像を渡す方法が結構めんどくさかったので、とりあえずmx:Imageのsourceに画像のURLを渡すことにした。これで表示はされるのだが、表示までに時間がわずかにかかる。最初に時間がかかるのはいいのだが、…

アイコン読み込み&表示

この前のKeyDown連打の問題はThreadViewerでボトルネックを探す予定。ぶっちゃけいうとReplyを自動表示させず、ワンクッション置いてもいいとは思うが、カクつく理由がHTML取得によるものでなければそれは解消できるはずだと考えている。さてアイコンを読み…

連続KeyDownに対するユーザビリティの向上

TLifeのDataGridでカーソルキーを押してKeyDownイベントを起こすと、selectionを上下に動かすほかに、ReplyGetThreadなる、reply先探索用のThreadが走る。実際にはKeyDownの処理関数でフラグを立てていて、別のタイマーの処理関数でフラグを読んでReplyGetTh…

BeanとObjectの適当な速度比較

ふと、メンバ変数とアクセサだけからなるBeanクラスと、ObjectクラスをVectorに格納した場合、どっちが速いか気になったので実験してみた。とはいうものの、適当にやったので数値とか書くのがめんどくさい。結論から書くと、メガ単位で行わない限りはボトル…

TextAreaのContextMenuがどうにもならない 解決編

TextFieldでも似たようなのあったなーと思ったら、TextAreaの中にあるUITextFieldがこのContextMenuを出していたんだね。 というわけで正解はこれ。friendpostがTextArea. var ui : UITextField = friendpost.getChildAt(2) as UITextField; var cm : Contex…

TextAreaのContextMenuがどうにもならない

TextAreaに限らずText系のクラス全てにいえるかもしれませんが、カーソルが変わっている状態で右クリックすると出てくるコンテキストメニューが、消すどころか編集すらできない。あれはどこから出ているんだろう・・いわゆる「編集メニュー」というものらし…

じゅわっと登場

アプリケーション開始時に透明→不透明にじゅわっと現れるようにしてみたい。Threadだけどご容赦。 new TweenerThread(Application.application, { alpha : 1.0, time : 0.5, transition : "linear" } ).start();基本的にはalphaを0.0→1.0にすればいいんだけ…

ファイルの保存先とか

どうやらapplicationDirectoryには保存できないみたいなので、applicationStorageDirectoryに設定ファイルを置くことにした。 だが、どうやらアプリケーションインストール時にapplicationStorageDirectoryにファイルを置くということができない(application…

終了時に座標等をファイルに保存する

よくありそうなこれ。アプリケーション終了時に設定XMLファイルにウィンドウの座標とか幅・高さを格納したい。一番最初に思いつくやり方が NativeApplication.nativeApplication.addEventListener(Event.EXITING, onExit);を仕掛けておいてonExitで configxm…

設定ファイルXML

設定値を保存しておくXMLは、属性に値を入れるのではなく子要素でおいておいたほうがxmlから直接アクセスできてよさげ。 で、次のような関数を設けて読み込む。 private function readXML(filename : String) : XML { var xmlstr : String = FileIO.readAll(…

ItemClickEvent.ITEM_CLICK

これまた当たり前かもしれないが、ToggleButtonBarのITEM_CLICKイベントはTabBar等ですでに押されているボタンを押すときには送られない。これはtoggleOnClickプロパティをonにしても変わらない。タブドラッグは当然押されているボタンをクリックすることも…

ToggleButtonBarのselectedIndex

よく考えたら至極当たり前かもしれないけどひっかかったので書いておく。ToggleButtonBarのデータバインドが変更されたとき、selectedIndexは必ず-1になる。と思う。

TLife

まだ申請してないけど、TLifeはAdobe AIRベースのTwitterクライアントです。絶賛開発中ですが、開発者のモチベーションが乱高下しているのでなかなか進んでません。http://www.libspark.org/browser/air/TLife僕はsvn updateしてないから誰も手加えるなよ!…

MultipleTabBarのタブドラッグ

複数のTabBarをVBoxで包んで縦に並べたMultipleTabBarという自作クラスを使っているのだけれど、そこでタブをつかんで別のタブの間にいれるということをしたい。それには ドラッグ開始時につかんでいるタブを取得 ドラッグ終了時にポインタがおかれているタ…