AIR: 2008年5月アーカイブ

AirではWindowの右下を引っ張ったりすると、サイズが変わるんだけど、

ある時はリサイズ可能で、ある時はリサイズ不可能にしたい


resizableっていうプロパティがあったので、それを使おうとしたら、


「読み取り専用です。」



はい???


なんか、初期化の段階でセットしなきゃいけないらしく、動的にころころ変えることはできないらしい



そこで、




ってやればリサイズ不可能じゃね???


許可したい場合は、適当な値を代入する



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



-------------------------追記(2008/10/3)------------------------------

[Air] 動的にリサイズを可能にしたり不可能にしたりする 〜その2〜
にもっと別の方法のソースを書きました。


1000speakersでプレゼンした時に、スライドがシャッって動くようなのをflexでやったんだけど、



動いてる方向にぼかしを入れるともっときれいになるってデザイナーの人に教えてもらったので、



次回のプレゼンするためのメモ



とりあえず、↓みたいになればいい





ソース:myBlurFilter.mxml



BlurFilterのコンストラクタは、
BlurFilter(blurX = 4, blurY = 4, quality = 1)で

・blurXは水平方向のぼかし(0.0〜255.0)、
・blurYは垂直方向のぼかし(0.0〜255.0)で
2のべき乗を指定すると速いらしい

・quialityは、なんかいblurをかけるか(?)で、値を大きくしたら重くなるので、1〜3にするといいらしい


これを適用させるには、filtersプロパティにこれを代入すればいいのだが、filtersの型はArrayなので"[","]"でくくってArrayにしてやる。
filterを外すには、filtersにnullを入れれば良い




また、Panelの移動のTweenにtransition:"easeOut"を指定し、徐々に減速して行くようにしたので、ぼかしも少しずつ減っていかないと不自然だった。
そこで、blurXにtweenをかけて値を減らしていけば良いと思ったのだが、BlurFilterは処理が重くなるのを避けるために、Bindableではないらしい。
なので、blurXのtweenを適用させるために、TweenerのonUpdateを用いて、filterをセットし直す。



今までPapervision3DでたくさんTweenerを使ってきて、TweenerはPapervision3D用のライブラリだと思ってたら、フツーのFlexのコンポーネントとかでも使えたww


Tweenerのコードは、↓からどうぞ
http://code.google.com/p/tweener/


Tweenerの使い方は、1000Speakersでしゃべった時のスライドによると、


Tweener.addTween(
        対象のオブジェクト
,
        {
            対象のプロパティ:tween後の値,
             time: tweenの時間(秒),
             transition:tweenの仕方
        }
);


ってあったけど、さらに、

Tweener.addTween(
        対象のオブジェクト
,
        {
            対象のプロパティ:tween後の値,
             time: tweenの時間(秒),
             transition:tweenの仕方,
            onComplete:tween終了後に呼ばれる関数

        }
);

のように、関数を指定してやると、tweenの後処理を行える


追記:
[Flex][Air] BlurFilterでぼかすにこれを使ったソースを載せました
Macならともかく、WindowsのデフォルトのChrome(クローム)はあんま格好良くないわけで、


でもタイトルバーを消すと、一緒に「閉じる」「最大化」「元のサイズに戻す」「最小化」が消えちゃうわけで、

それを自分で実装する時に、イベントに登録するメソッド



・閉じる


・最大化


・元のサイズに戻る


・最小化



「最大化」と「元のサイズに戻す」はViewStackに入れると幸せになれる予感
 コンポーネントをデフォルトアプリケーションのmxmlに直接書かずに、ActionScriptからnewしてaddChildする時に、mxmlだとwidth="100%"とか書けたのに、asでwidth=100%;などと書くとエラーが出る。


どうにかならないかなって思ってたら、



親切で美しい吉村さんが教えてくれました




width = 100%;とせずに、


percentWidth = 100;とすればいいとのこと


heightも同様に、percentHeightっていうプロパティがあるそうで





し、知らなかったぁ・・・

iKnow

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