AIRの最近のブログ記事

一昨日の[3D][Astro] 3Dの移動/回転を行列(Matrix3D)を使ってやるで、HSliderのthumbDragイベントによって、updateDisplayListが実行されてるはずなのに表示が更新されてない(´・ω・`)

まじ意味わかんねーヾ(〃>_<;〃)ノ


って思ってたら、liveDraggingっていうプロパティがあるみたい


APIリファレンスによるとー



スライダのライブドラッグを有効にするかどうかを指定します。 false の場合は、value プロパティと values プロパティが設定され、ユーザーがスライダサムのドラッグを停止したときchange イベントが送出されます。 true の場合は、value プロパティと values プロパティが設定され、ユーザーがサムを移動しているときに change イベントが継続的に送出されます。



なんでこんなプロパティあるんだろうー(´・ε・`)

停止したとき = CHANGE、移動中 = thumbDragとかでいいのに。


でも、おかげで、これをtrueにしたら、描画が反映されました。


id:keiichic++


なんでこんなの知ってるんだろう?(゜_。)?(。_゜)?
あるクラスにアクセスした時に最初の1回だけstaticな変数などの初期化処理を行いたい。staticじゃないやつはコンストラクタで出来るのに・・・


静的初期化子を使えばいいそうです。具体的には、
 staticな変数の初期化(1行でかけない場合)
 styleの初期化
があるみたい。もっとあると思うけどすぐ出てこない。


styleの初期化っていうのは例えば、スタイルシートには
.hogeって書くクラスセレクタと
Hogeってかくタイプセレクタがあって、

このタイプセレクタの初期化ってのがクラスに最初にアクセスが起ったタイミングでやりたいので、
静的初期化子を使えということ。

スタイルについては後でまとめます。今回は静的初期化子の話。


javaとかだと
static {

}
とかで出来るんだけど(実際やってるの見たことないけどww)


ActionScriptではそういうのがないから、




とかってやればいいらしい。

ちなみに、constな定数は、宣言時じゃないと初期化できないみたい。

初期化に複数行かかる場合は、同じやり方でその処理メソッドにして宣言時にその戻り値を入れるようにすればok

以前、Eventクラス系とかあんまり詳しくなかった頃、

[Air] 動的にリサイズを可能にしたり不可能にしたりする


「もっといい方法があれば教えてください」

って書いてたら、次の日くらいに現実世界で「イベントキャンセルすればいいじゃん」って教えてもらってたんだけど、当時は、

イベントを・・・キャンセルする???どうやって????
まぁ今ちゃんと制御できてるからいいや

っていうレべルで汗
保守的にあのやり方はまずいのを最近実感してたところで、通りすがりの方からコメントがあったので


ちゃんとしたコードを書きます。


Event#preventDefault()でcancelable=trueなデフォルトのイベントをキャンセルできるみたいです


知らなかった


NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, listener);
もしくは、
WindowedApplication.addEventListener(InvokeEvent.INVOKE, listener);

とかしたら、

InvokeEvent#argmentsに引数がArray型で取得できる。


引数には、実行コードは含まず、インストール時に作成されたショートカットとかで起動した場合は、
lengthが0になってる。


ユーザに実行時引数をつけろとかいうのは大変だけど、ショートカットを右クリック -> プロパティでパスの最後に引数を追加すればokなので、管理者が管理モードで起動とかならいいかもね


引数は基本的には、スペースで区切られて、具体的には、

引数

配列

tick tock

{tick,tock}

tick "tick tock"

{tick,tick tock}

"tick" "tock"

{tick,tock}

\"tick\" \"tock\"

{"tick","tock"}


となるらしい。



<参考>
Adobe AIR * アプリケーションの起動および終了オプション
Adobe® Flex™ 3 リファレンスガイド


DataGridにはないけど、AdvancedDataGridには、ヘッダ部分にソート順を表す数値を示すスペースがある。

でもこのスペースと縦棒、sortableColumns=falseの時は、空気を読んで消えて欲しい。




んで、たまたま「あわせて読みたい」に載ってるサイト見てたら解決法が載ってるではないか!!


id:kkanda さんによると、sortExpertModeをtrueにすればいいとのこと。


さっそく試してみたところ


ホントだー!!!しかも動的にも変えれるんだーってことがわかりました。
月曜日会社に行ったら直しとこ♪

以下、サンプル(ソースは 右クリック -> ソースの表示)






<参考>
[flex][as3] AdvancedDataGridのヘッダに表示される縦線を消す方法

2008年11月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

iKnow

あわせて読みたいブログパーツ
Firefox meter